【发布时间】:2014-02-03 17:59:07
【问题描述】:
我有一个数据框列表(这里以 2 个为例)。
df1 <- read.table(text= "var,X2x,X4x,X6x
101337,4.631833,4.4547,11.097333
345754,3.727433,10.8560,10.536600" ,header=TRUE, sep=",")
df2 <- read.table(text= "var,X2x,X4x,X6x
101337,5.631833,10.4547,11.097333
345754,5.727433,12.8560,10.536600" ,header=TRUE, sep=",")
dflist <- list(df1=df1, df2=df2)
我想使用 lapply 遍历每个 data.frame 并使用 apply 进行简单比较(即检查第二列的值是否大于第三列),给定结果,添加一个新的带有标签的列(在示例中,新列称为“因子”。)
我快到了,但我的脚本输出错误,返回一个向量列表,而不是带有添加列的 data.frames 列表。
代码如下:
dfL <- lapply(dflist,function(dfx) {
apply(dfx,1, function(df) { if(df[3] < (df[4] )) {
dfx$factor<-"nonNA"} else {dfx$factor<-"NA"}
}
)
}
)
你能解释一下我做错了什么吗?
【问题讨论】: