![](/img/trans.png)
[英]How to combine multiple .csv files, and add a column with each dataset's name, in R?
[英]How to grab each column's unique values in multiple csv files
我对R比较陌生,请耐心等待。 我有50多个csv文件,希望遍历每个文件并获取每一列的唯一值。 它们都被格式化,第一行是标题。
理想的输出将是一个数据帧,指示每个csv的文件名,列标题和唯一值。 这些是每一列的唯一值,一次是一个,而不是列组合的唯一性。
任何帮助将不胜感激!
这是我如何获取唯一值的列表,但是我不确定下一步该怎么做:
lapply(files, function(x) {
t <- read.csv(x, header=TRUE) # load file
unq <- apply(t, 2, unique)
})
这应该可以解决问题:
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
为x
每个编号为idx
列返回一个数据帧。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.