【发布时间】:2016-12-23 10:49:42
【问题描述】:
我有大量如下所示的 CSV 文件:
var val1 val2
a 2 1
b 2 2
c 3 3
d 9 2
e 1 1
我想:
- 读入
- 从每个 CSV 中获取前 3 名
- 仅列出变量名称(3 x 文件数)
- 只保留列表中的唯一名称
我想我已经通过这样做达到了第 3 点:
csvList <- list.files(path = "mypath", pattern = "*.csv", full.names = T)
bla <- lapply(lapply(csvList, read.csv), function(x) x[order(x$val1, decreasing=T)[1:3], ])
lapply(bla,"[", , 1, drop=FALSE)
现在,我列出了每个 CSV 中的前 3 个变量。但是,我不知道如何将此列表转换为字符串并仅保留唯一值。
欢迎任何帮助。
谢谢!
【问题讨论】:
-
所以您只需要示例中的
a b c?我认为你可以unlist你的lapply结果,然后使用unique,它是 dedups/uniqifies。 -
没错,@Frank。我只想保留
a b c作为列表。unlist失败并显示Error in structure(res, levels = lv, names = nm, class = "factor") : 'names' attribute [450] must be the same length as the vector [9]