我尝试了一些代码,但我无法提出解决方案,我的问题如下。
我有一个工作目录,其中包含许多独立的csv文件和唯一名称。 有34种不同类型的文件,具体取决于列数,有些具有A到C列,有些则有A到E.它们的共同点是每个文件都有A列和B列。
我现在想做什么,我想根据它们的数量和类型对它们进行排序/过滤。
例如:类型1:列A + B,类型2:列A + B + C,类型3:列A + C + D ......
接下来应该看起来像:
Type1 Type 2 文件名A文件名D. 文件名B文件名E. 文件名C文件名F ...
为了在eahc个人类型上使用不同的方法,那么我在一个“列”下有相似类型的数据结构
我尝试使用我发现的一个函数,它可用于已经“干净”的数据:
load_data <- function(path) {
files <- dir(path, pattern = '\\.csv', full.names = TRUE)
tables <- lapply(files, read.csv("", nrows=1, header=TRUE, sep=","))
do.call(rbind, tables)
}
identifier <- load_data("path")
由于数据非常大,我认为这将是最好的方式。
我可以想到的另一个解决方案是为每个文件创建单个数据帧,并将它们放在一个列表中,然后根据索引的数量进行过滤?
非常感谢你的帮助,
BR
答案 0 :(得分:0)
好吧所以我想办法做到这一点,但它真的很慢:
path <- "path"
name_list <- dir(path)
df <- data.frame()
i <- 1
for(i in 1:length(name_list)){
ident = dim(read.csv(paste(path,name_list[i], sep ="/"), nrows=2, header=TRUE, sep=","))
df[i,1] <- cbind(name_list[i])
df[i,2] <- cbind(ident[2])
}
也许可能有apply
函数的解决方法?