【发布时间】:2020-05-09 22:20:31
【问题描述】:
我正在尝试使用基于第 5 列中二进制变量的数据框来处理 lapply 函数。
我制作的功能非常简单。一个简单的 t.test,效果很好
t.test.by.ind = function(x, ind) {
stopifnot(all(ind %in% c(0, 1)))
return(t.test(x[ind == 0], x[ind == 1]))
}
现在,对于这个问题,我一辈子都无法正常工作。我尝试了几种变体,例如:
##Note that pros.dat = my dataframe
lapply(pros.dat, FUN = function(df){
return(apply(pros.dat[,-5], MARGIN = 2,
FUN = t.test.by.ind, ind = pros.dat[,5]))
})
和
##Note that pros.dat = my dataframe
lapply(pros.dat, FUN = function(df){
return(apply(df[,-5], MARGIN = 2,
FUN = t.test.by.ind, ind = df[,5]))
})
我在尝试让 lapply 上班时遇到了最糟糕的情况。我可以让应用正常工作。
apply(pros.dat[,-5], MARGIN = 2, FUN = t.test.by.ind, ind = pros.dat[,5])
为什么我看不到我做错了什么?
【问题讨论】:
-
我在
lapply,你在哪里用df你可能需要lapply(pro.dat[-5], function(df) t.test.by.ind(df, ind = pros.dat[,5])) -
这很好用。非常感谢你一如既往的阿克伦!!