У меня есть кадр R данных, как это с 45389 строкСумма нескольких переменных по группам
gene_id KOIN1 KOIN2 KOIN3 KOIP1 KOIP2 KOIP3
1 ENSMUSG00000000001 6.0056300 4.677550 6.3490400 9.9992300 9.931780 12.56900000
2 ENSMUSG00000000003 0.0000000 0.000000 0.0000000 0.0000000 0.000000 0.00000000
3 ENSMUSG00000000028 0.9988830 0.407537 1.5629300 0.1845460 1.899790 0.85186600
4 ENSMUSG00000000031 0.0000000 0.818696 0.3708190 0.0419544 0.000000 0.02832700
5 ENSMUSG00000000037 0.0160579 0.172857 0.0988266 0.0000000 1.174690 0.00726742
6 ENSMUSG00000000049 0.3923090 0.000000 0.0000000 0.0000000 0.124112 0.01811530
и так далее ...
Есть некоторые дубликаты в gene_id колонке. Например,
5090 ENSMUSG00000025515 0.00000000 0.00000000 0.1572500 0.000000000 0.000000 0.0000000
5091 ENSMUSG00000025515 0.00000000 0.00000000 0.1572500 0.000000000 0.000000 0.0000000
5095 ENSMUSG00000025515 0.00000000 0.00000000 0.0386388 0.000000000 0.000000 0.0000000
5096 ENSMUSG00000025515 0.00000000 0.00000000 0.0386388 0.000000000 0.000000 0.0000000
5100 ENSMUSG00000025515 0.00000000 0.00000000 0.0000000 0.000000000 0.000000 0.0000000
5101 ENSMUSG00000025515 0.00000000 0.00000000 0.0000000 0.000000000 0.000000 0.0000000
5105 ENSMUSG00000025515 0.33817000 0.06733700 0.4894620 0.000000000 0.000000 0.0000000
5106 ENSMUSG00000025515 0.33817000 0.06733700 0.4894620 0.000000000 0.000000 0.0000000
5110 ENSMUSG00000025515 0.00863568 0.00000000 0.0337577 0.000000000 0.000000 0.0000000
5111 ENSMUSG00000025515 0.00863568 0.00000000 0.0337577 0.000000000 0.000000 0.0000000
То, что я в принципе хочу сделать, это свернуть все дубликаты вниз в одну строку со значениями для каждого столбца, являющегося суммой всех значений.
Я думал ddply из пакета plyr будет работать, но она по-прежнему дает мне все дублеты
newdataframe <- ddply(dataframe,"gene_id",numcolwise(sum))
Это то, что я побежал.
Любые предложения?
может быть, вам нужно 'суммировать 'там как-то? Нечисловые значения не будут свернуты ... угадать (не тестировать), 'ddply (dataframe," gene_id ", суммировать, numcolwise (sum))'? –
Или 'library (data.table); setDT (df) [, lapply (.SD, sum), by = gene_id] ' –