【发布时间】:2015-05-31 19:58:18
【问题描述】:
我有一个包含多个 csv 文件(如 40 个)的地毯,但我只想从它们中读取一列,即第 9 列,并将其分配给一个向量。有没有办法做到这一点而无需手动执行?
我想我以前看到过一个与此类似的问题,但我再也找不到了。
谢谢
【问题讨论】:
-
您的标题和描述令人困惑。您想提取单行或单列吗?如果您想从 40 个文件中获取第 9 列。我们可以读取列表中的所有文件。如果所有文件中的列长度相同,
files <- list.files(); lst <- lapply(files, read.table, header=TRUE, sep=''); lapply(lst, '[[', 9)和sapply(lst, '[[',9)在矩阵中获取输出 -
我弄糊涂了,抱歉。我有 40 个这样的数据库:name form species strand function site 我只想要物种信息。但是,正如您所提到的,数据库的长度不相等,这就是我考虑向量的原因,但是有没有办法将它们放在单个数据框中,这会很棒,谢谢
-
您可以将文件读入上述列表 (
lst) 并使长度相等。即lst1 <- lapply(lst, '[[', 9); data.frame(lapply(lst1, "lengths<-", max(lengths(lst1))))
标签: r read.table