我对R比较新,所以请耐心等待。我有50多个csv文件,我希望能够浏览每个文件并获取每个列的独特值。它们都被格式化为第一行是标题。
理想输出将是指示每个csv的文件名,列标题和唯一值的数据帧。这些是每列的唯一值,一次一个,而不是列的组合中的任何唯一性。
非常感谢任何帮助!
以下是我如何将唯一值作为列表获取,但我不确定下一步该做什么:
lapply(files, function(x) {
t <- read.csv(x, header=TRUE) # load file
unq <- apply(t, 2, unique)
})
答案 0 :(得分:2)
这应该可以解决问题:
do.call(rbind, lapply(files, function(x) {
dat <- read.csv(x, header=TRUE)
do.call(rbind, lapply(seq(ncol(dat)), function(idx) {
data.frame(filename=x, column=colnames(dat)[idx],
value=unique(dat[,idx]))
}))
}))
外部lapply
为您的每个文件x
返回一个数据框,内部lapply
为{{1}内每个编号为idx
的列返回一个数据框}}