我在 R 中聚合了一堆 CSV 文件,我使用以下代码成功完成了这些文件(在这里找到):
Tbl <- list.files(path = "./Data/CSVs/",
pattern="*.csv",
full.names = T) %>%
map_df(~read_csv(., col_types = cols(.default = "c")))
Run Code Online (Sandbox Code Playgroud)
我想在 Tbl 中包含 .csv 文件名(最好没有文件扩展名)作为一列。我找到了一个使用 plyr 的解决方案,但我想坚持使用 dplyr,因为 plyr 会导致我的代码进一步出现故障。
有什么办法可以在上面的代码中添加一些东西来告诉 R 在 Tbl$filename 中包含文件名吗?
非常感谢!
我有几个具有相同结构的不同 csv 文件。我使用 fread 将它们读入 R,然后使用rbindlist().
files <- list.files( pattern = "*.csv" );
x2csv <- rbindlist( lapply(files, fread, stringsAsFactors=FALSE), fill = TRUE )
Run Code Online (Sandbox Code Playgroud)
代码工作得很好。但是,我想添加一个填充数字的列,以指示观察来自哪个 csv 文件。例如,输出应该是:
V1 V2 V3 C1
1: 0 0.2859163 0.55848521 1
2: 1 1.1616298 0.87571349 1
3: 2 2.1122510 0.95062116 2
4: 3 2.6832013 0.57095035 2
5: 4 2.9117493 0.22854804 2
6: 5 2.9886040 0.07685464 3
Run Code Online (Sandbox Code Playgroud)
其中 C1 是新的索引列,说明:第一个和第二个观察来自 files[1](第一个 .csv 文件);第三个和第四个观察来自 files[1](第一个 .csv 文件);等等。
我想将多个 csv 文件读入 R 并将它们组合成一个大表。但是,我需要一个列来标识每行来自哪个文件。
基本上,文件中的每一行都有一个唯一的标识号,但这些号码在文件中重复。因此,如果我在不知道每一行来自哪个文件的情况下将所有文件绑定到一个表中,我将不再拥有唯一标识符,这使我计划的分析变得不可能。
到目前为止我所拥有的是这个,但这并没有给我数据来自哪个文件。
list_file <- list.files(pattern="*.csv") %>% lapply(read.csv,stringsAsFactors=F)
combo_data <- list.rbind(list_file)
Run Code Online (Sandbox Code Playgroud)
我有大约 100 个文件要阅读,所以我真的很感激任何帮助,所以我不必单独完成它们。