我有一个错误,我不知道如何使用ddply解决以下代码:
FLF.DJ = ddply(dat, c("Trial.group","Location"), function(sub_dat) {
ST_sow = ST_sowing[ST_sowing$Trial.group %in% unique(sub_dat$Trial.group) &
ST_sowing$Location %in% unique(sub_dat$Location),]
do.call(rbind, lapply(sub_dat[, "X0142_FLF"], function(x) {
get.DJ(ST_sow[-c(1:3)], as.Date(x, origin="2013-06-01"))}))
})
错误
Error in output[rng, lcols[[i]]] <- matrices[[i]] :
incorrect number of subscripts on matrix
使用:
get.DJ = function(df,date){
ST=df[ ,which(as.Date(colnames(df)) == date)]
return(c(ST))
}
如果我只运行function(sub_dat){...}
代码的中心部分,它运行良好,但我无法使用ddply部分将函数应用于每个子集("Trial.group","Location"
我的数据。
有什么建议吗? 谢谢你的帮助!
编辑:
我认为问题来自于ddply
中函数的返回数据帧的长度。
ddply
使用rbind.fill
来组合所有输出数据,但它们的长度不同并且导致错误。你有什么建议吗 ?
我尝试使用循环而不是rbind,但是出现了同样的错误:
Error in rbind(deparse.level, ...) :
invalid list argument: all variables should have the same length')