【发布时间】:2016-12-03 14:25:09
【问题描述】:
我有一个 data.frames 列表,我想有条件地重新分配 data.frame 中的值。如果我只是分配给单个 data.frame,我会说类似
DF[DF==9] <- NA
将 data.frame 中所有为 9 的条目设置为 NA。但是,当我尝试使用 lapply 对列表中的每个 data.frame 执行相同的过程时:
List_of_DFs <- list(DF1, DF2, DF3)
List_of_DFs <- lapply(List_of_DFs, function(x) x[x==9] <- NA)
不是每个值 9 都变为 NA,而是整个列表条目变为 NA。所以在上面的例子中,List_of_DFs 变成了NA,NA,NA。
我知道我可以使用for 循环和[[]] 子集运算符来做到这一点,但我认为必须有更好的方法。
如果它有趣或相关,这个问题背后的动机是 data.frames 列表来自 XLConnect,我随后将逐行绑定 data.frames,但我首先想在一个列中删除一些字符值应该都是数字,所以我可以强制为数字,然后按行绑定。
【问题讨论】:
标签: r list dataframe subset lapply