应用用户定义的函数 [英] Apply User Defined Functions

查看:22
本文介绍了应用用户定义的函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个用户定义的函数.

I have a user-defined function.

funct<-function(object,state){
  Init<-matrix(0,nrow=1,ncol=length(object))
  colnames(Init)<-unique(object)
  Init[,which(colnames(Init)==state)]<-Init[,which(colnames(Init)==state)]+1
  return(Init)
}

显示函数输出

letters1<-letters[1:5]
funct(letters1,"b")

我有一个数据框,并在其上应用我的函数以使用 apply family 按行组合它.

I have a data frame, and apply my function on it to combine it by rows by using apply family.

dat<-data.frame(letters1=c("a","b"))

我的尝试

mapply(funct,unique(dat$letters1),dat$letters1)

期望的输出

rbind(funct(unique(dat$letters1),"a"),funct(unique(dat$letters1),"b"))
 a b
[1,] 1 0
[2,] 0 1

谢谢.

推荐答案

可能调用 diag 是获得所需输出"的更优雅的解决方案:)

Probably calling diag would be a more elegant solution to get the "desired output" :)

但是您也可以稍微简化一下您的自定义函数,例如:

But you can also simplify your custom function a bit, e.g.:

> dat <- c("a", "b")
> sapply(dat, function(x) as.numeric(dat == x))
     a b
[1,] 1 0
[2,] 0 1

这篇关于应用用户定义的函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆