У меня есть каталог, полный CSV-файлов, у всех из которых есть общий столбец (Class
), а затем целочисленное значение, хотя они имеют несовместимую длину файла.Пример [1:5, ]
:
Class Abundance_inds
1 Chaetognath 2
2 Copepod_Calanoid_Acartia_spp 9
3 Copepod_Calanoid_Centropages_spp 4
4 Copepod_Calanoid_Temora_spp 1
5 Copepod_Calanoid_Unknown 5
Они экспортируются для другого сценария R, поэтому перед объединением необходимо обрезать первый столбец, я могу успешно объединить его, используя:
test <- read.csv(file = csvs[1])[ ,2:3]
test2 <- read.csv(file = csvs[2])[ ,2:3]
изатем:
library(tidyverse)
mergedcsvs <- list(test, test2) %>% reduce(full_join, by = "Class")
, который дает следующий и желаемый результат независимо от того, сколько файлов [1:4,]
:
Class Abundance_inds.x Abundance_inds.y
1 Chaetognath 2 4
2 Copepod_Calanoid_Acartia_spp 9 11
3 Copepod_Calanoid_Centropages_spp 4 8
4 Copepod_Calanoid_Temora_spp 1 NA
Я также хочу использовать basename
файла в качествеЗаголовок столбца, я знаю, что могу извлечь, использует это:
basename1 <- csvs[1]
basename2 <- csvs[2]
Я знаю, что я могу создать список basenames
, затем использовать это заголовки столбцов, но кажется довольно непрактичным, чтобы создать кадр данных для каждогоодин CSV (есть много), затем вручную сделать это.
Поскольку CSV экспортируются из другого R-скрипта, у них есть дополнительный ненужный первый столбец, который необходимо удалить.
Конечно, есть лучший способ!Любая помощь будет отличной.
(у меня был беспорядок с этим , но я не могу заставить его работать на меня)
Большое спасибо