Новичок здесь, заранее спасибо за помощь
У меня есть список из нескольких фреймов данных (AllExplants) с одинаковым количеством столбцов (с одинаковыми именами) и разным количеством строк. Я хочу объединить столбцы для всех данных в списке сразу.
Мои данные: для простоты я буду использовать список из двух фреймов данных
AllExplants <- list(Explant1, Explant2)
Explant1:
`Sample Name` `Tissue Category` `Annotation ID` All Negative `Non-nuclear` PD1 PDL1
1 LT181- PD1 PDL1 MNF -1_Scan1.qptiff All LT181- PD1 PDL1 MNF -1_Scan1_[10311,49192] 25140 4954 23 4418 15635
2 LT181- PD1 PDL1 MNF -1_Scan1.qptiff Stroma LT181- PD1 PDL1 MNF -1_Scan1_[10311,49192] 8788 1678 23 2922 4114
3 LT181- PD1 PDL1 MNF -1_Scan1.qptiff Tumour LT181- PD1 PDL1 MNF -1_Scan1_[10311,49192] 16344 3268 0 1496 11521
4 LT181- PD1 PDL1 MNF -1_Scan1.qptiff All LT181- PD1 PDL1 MNF -1_Scan1_[10311,51272] 37930 9847 137 9821 17921
5 LT181- PD1 PDL1 MNF -1_Scan1.qptiff Stroma LT181- PD1 PDL1 MNF -1_Scan1_[10311,51272] 17400 5700 123 4914 6544
6 LT181- PD1 PDL1 MNF -1_Scan1.qptiff Tumour LT181- PD1 PDL1 MNF -1_Scan1_[10311,51272] 20526 4144 13 4907 11377
7 LT181- PD1 PDL1 MNF -1_Scan1.qptiff All LT181- PD1 PDL1 MNF -1_Scan1_[12161,50230] 2315 1105 34 334 818
8 LT181- PD1 PDL1 MNF -1_Scan1.qptiff Stroma LT181- PD1 PDL1 MNF -1_Scan1_[12161,50230] 1666 934 30 266 427
9 LT181- PD1 PDL1 MNF -1_Scan1.qptiff Tumour LT181- PD1 PDL1 MNF -1_Scan1_[12161,50230] 639 164 1 68 391
Explant2:
`Sample Name` `Tissue Category` `Annotation ID` All Negative `Non-nuclear` PD1 PDL1
1 LT181- PD1 PDL1 MNF -1_Scan1.qptiff All LT181- PD1 PDL1 MNF -1_Scan1_[10872,46112] 19602 4370 47 3176 11983
2 LT181- PD1 PDL1 MNF -1_Scan1.qptiff Stroma LT181- PD1 PDL1 MNF -1_Scan1_[10872,46112] 8479 2158 36 2624 3644
3 LT181- PD1 PDL1 MNF -1_Scan1.qptiff Tumour LT181- PD1 PDL1 MNF -1_Scan1_[10872,46112] 11116 2207 11 552 8339
4 LT181- PD1 PDL1 MNF -1_Scan1.qptiff All LT181- PD1 PDL1 MNF -1_Scan1_[11335,47845] 14783 2036 10 1697 10973
5 LT181- PD1 PDL1 MNF -1_Scan1.qptiff Stroma LT181- PD1 PDL1 MNF -1_Scan1_[11335,47845] 3179 494 6 894 1770
6 LT181- PD1 PDL1 MNF -1_Scan1.qptiff Tumour LT181- PD1 PDL1 MNF -1_Scan1_[11335,47845] 11604 1542 4 803 9203
Я хочу объединить столбцы 4-8 (т.е. все, отрицательные, неядерные, PD1, PDL1) и сделать это в соответствии со столбцом 2 (категория тканей)
Я могу сделать это для каждого отдельного кадра данных (если его нет в списке), с кодом ниже
Explant1_agg <- aggregate(Explant1 [,4:8], by=list(Explant1$`Tissue Category`), FUN=sum)
Однако для того, чтобы применить одну и ту же функцию ко всем кадрам данных в списке, я попробовал этот код, посмотрев здесь сообщения:
AllExplants_agg <- lapply(AllExplants, function(x) {aggregate(x[,4:8], by=list(x[,2]), FUN=sum)})
Однако R возвращает ошибку
Error in aggregate.data.frame(x[, 4:8], by = list(x[, 2]), FUN = sum) :
arguments must have same length
Любая помощь будет принята с благодарностью!