繁体   English   中英

如何在多个csv文件中获取每一列的唯一值

[英]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返回一个数据帧,内部lapplyx每个编号为idx列返回一个数据帧。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM