应用用户定义的函数 [英] Apply User Defined Functions
本文介绍了应用用户定义的函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个用户定义的函数.
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屋!
查看全文