为什么这样做有效,但不适呢?
使用内置的基本R ChickWeight数据:
names(ChickWeight)<-tolower(names(ChickWeight))
如果我只想为1列“时间”建立一个相关性,则此方法有效:
library(reshape)
cor(cast(melt(ChickWeight[,c("time","diet","chick")],id.vars=c("chick","diet")),chick~diet))
当我尝试将相同的内容应用于“时间”和“重量”时,即列1:2:
lapply(as.list(ChickWeight[,c(1:2)]), FUN=function(i){
cor(cast(melt(ChickWeight[,c(i,"diet","chick")], id.vars=c("chick","diet")),chick~diet))
})
因此,功能部分本身可以很好地工作的事实使我觉得使用lapply
这样的事情我不了解。我收到此错误:
Error in `[.data.frame`(ChickWeight, , c(i, "diet", "chick")) :
undefined columns selected
答案 0 :(得分:1)
啊,我现在知道您要在这里做什么。
替换:
lapply(as.list(ChickWeight[,c(1:2)]), .........
使用
lapply(names(ChickWeight)[1:2], .............
当您想要的是列名时,您正在传递列值。