我有一个用户定义的功能。
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按行组合。
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
感谢。
答案 0 :(得分:1)
可能调用diag
将是一个更优雅的解决方案,以获得所需的输出&#34; :)
但您也可以稍微简化自定义功能,例如:
> dat <- c("a", "b")
> sapply(dat, function(x) as.numeric(dat == x))
a b
[1,] 1 0
[2,] 0 1