【发布时间】:2015-07-29 21:10:51
【问题描述】:
我正在努力做一些我知道应该很简单的事情。
我有一个这样的数据框列表:
a <- rep(1, 10)
b <- rep(3.6, 10)
foo1 <- cbind(a, b)
d <- rep(2, 8)
b <- rep(4.9, 8)
foo2 <- cbind(d, b)
data <- list(foo1, foo2)
我想通过索引或列名从每个数据帧中提取第二列,并使用 write.table 并与数据帧同名保存到 csv 文件。我尝试了很多东西——for循环和lapply和sapply。
我收到各种错误消息,但主要是以下内容:
In if (file == "") file <- stdout() else if (is.character(file)) { :
the condition has length > 1 and only the first element will be used
我无法解决。
我知道我没有正确索引。请帮帮我!
【问题讨论】:
-
lapply(data, function(x) x[,2,drop=FALSE]) -
您尝试的导致此类错误的代码是什么?
-
那些不是数据框。
-
确认。对不起,不是 df 的假数据。真正的数据对象是数据帧!
-
@akrun 这将提取列。但是,我如何将 lapply 的结果输入到单个 csv 中?我尝试了一个 for 循环并为此再次 lapply,但无法正确建立索引。