【发布时间】:2019-07-28 05:03:40
【问题描述】:
下午(或早上、晚上)
我正在尝试合并几个具有相似布局的 .csv 文件,它们在一个列 (character) 中有一个类,在另一列中有一个丰富的 (num)。
当导入为 data.frame 示例时:
print(one[1:5,])
X Class Abundance_inds
1 1 Chaetognath 2
2 2 Copepod_Calanoid_Acartia_spp 9
3 3 Copepod_Calanoid_Centropages_spp 4
4 4 Copepod_Calanoid_Temora_spp 1
5 5 Copepod_Calanoid_Unknown 55
类列(行数和顺序)根据找到的内容更改每个 csv,我想根据类列绑定几个(30+)个 csv,我有以下(我确信前一段时间还在工作.....):
DensityFiles <- list.files(CSVdirectory,
pattern = '.csv',
full.names = T)
Combined <- rbindlist(
lapply(
DensityFiles,
fread),
fill = TRUE,
use.names = TRUE)
这会产生以下内容:
str(Combined)
Classes ‘data.table’ and 'data.frame': 461 obs. of 3 variables:
不是我想要的!我正在寻找以下内容:
> print(example)
X Class CSV.NAME CSV.NAME.1
1 1 Bivalve_Larvae 1 3
2 2 Bryozoa_Larvae 4 6
3 3 Chaetognath NA 7
4 4 Cnidaria 1 8
5 5 Copepod_Calanoid_Acartia_spp 22 NA
6 6 Copepod_Calanoid_Calanus_spp 24 4
7 7 Copepod_Calanoid_Candacia_sp 5 3
8 8 Copepod_Calanoid_Centropages_spp 41 2
9 9 Copepod_Calanoid_Temora_spp 39 8
10 10 Copepod_Calanoid_Unknown 458 NA
11 11 Copepod_Cyclopoid_Corycaeus_spp 46 NA
12 12 Copepod_Cyclopoid_Oithona_spp NA 4
13 13 Copepod_Cyclopoid_Oncaea_spp NA 7
14 14 Copepod_Harpacticoid 36 NA
15 15 Copepod_Nauplii 12 9
我可以在使用时使用idcol = "origin" 将 CSV 名称添加到列标题中
data.table 库rbindlist。但不确定这是否适用于所有解决方案。
我已经进行了很好的搜索,但大多数示例似乎都在处理一致的行数,
任何帮助将不胜感激!
吉姆
【问题讨论】:
-
你能举一个你期望输出的例子吗? rbindlist() 的输出有什么意外/错误?
-
所有的csv都有相同的标题吗?
-
您好,请查看更新后的问题!是的,它们都有相同的标题。会不会是第 1 栏搞砸了? (现在将尝试)
-
它不是 R 在写入 CSV 时放入的第一列。