Объединение одного столбца из нескольких data.frames с разными именами столбцов - PullRequest
0 голосов
/ 17 января 2019

Я пытаюсь объединить один столбец из нескольких таблиц, где столбец имеет разные имена в каждой таблице.

У меня есть несколько таблиц (TXT-файлов), которые имеют несколько столбцов и настроены, например:

ФАЙЛ 1:

Target     total_coverage avg_coverage sample1_total_cvg  sample1_mean_cvg...                   
Contig1493   19515          34.18        19515             34   
Contig1494   594            18           594               18
Contig1495   50372          40.23        50372             40
Contig1496   1985           21.81        1985              22
.
.
.

ФАЙЛ 2:

Target     total_coverage avg_coverage sample1_total_cvg sample1_mean_cvg...                    
Contig1493   22345          33.1          22345            36   
Contig1494   466            25            4556             12
Contig1495   50000          30.2          47987            33
Contig1496   4530           26.4          45786            23
.
.
.

и т. Д.

первые три столбца имеют одинаковые имена во всех таблицах, остальные столбцы имеют разные имена (соответствующие различным отдельным образцам)

Япытаясь создать таблицу, в которой я храню идентификатор и первый столбец, а затем объединить каждую из таблиц по 5-му столбцу (sampleID_mean_cvg), чтобы моя итоговая таблица выглядела следующим образом:

Target       sample1_mean_cvg       sample2_mean_cvg      sample3_mean_cvg ...              
Contig1493     34                      12                   22
Contig1494     18                      13                   22
Contig1495     40                      12                   13
Contig1496     22                      55                   21
.
.
.

Я искалсовсем немного и думал, что смогу добраться до него, используя Саппи.Итак, вот что я пытался.У меня есть все таблицы в каталоге, и я делаю:

smpl.Tables <- list.files(pattern = ".txt")

Затем я создаю пустой список, который будет служить контейнером для приема входящих файлов

list.data<-list()

создать цикл для чтения ваших данных

for (i in 1:length(smpl.Tables))
{
  list.data[[i]]<-read.table(smpl.Tables[i])
}

добавить имена ваших данных в список

names(list.data)<-smpl.Tables

Записать в новый файл

write.csv(sapply(list.data,"[", 5),'contigDepth.csv')

Вот что я получаю, когда выполняю свой код:

   sample1_FileName   sample2_Filename   sample3_Filename...
   sample1_mean_cvg   sample2_mean_cvg   sample3_mean_cvg...
1   34                12                 22
2   18                13                 21
3   40                12                 13
4   22                55                 21
.
.
.

Я не могу понять, как сохранить идентификаторы первого столбца при объединении 5-го столбца из каждой таблицы.Я полагаю, я мог бы пойти в окончательный файл и скопировать вставить вещи и удалить первую строку имен файлов ... но есть способ сделать это без этого.У кого-нибудь есть предложения?Я был бы очень признателен за любую помощь!

Приветствия

...