2014-01-03 2 views
0

У меня есть dataframe, который выглядит следующим образом (со значениями для всех потоков, как кадр прогрессирует):Как суммировать определенные столбцы по строкам в R?

head(icdata) 
    Count Thread1 Thread2 Thread3 Thread4 Thread5 Thread6 Thread7 Thread8 
1 8543034 555724  NA  NA  NA  NA  NA  NA  NA 
2 26632195 730156  NA  NA  NA  NA  NA  NA  NA 
3 46332821 730679  NA  NA  NA  NA  NA  NA  NA 
4 47491531 22694 16715  NA  NA  NA  NA  NA  NA 
5 48939781 62418 114842  NA  NA  NA  NA  NA  NA 
6 50397031 63560 38147  NA  NA  NA  NA  NA  NA 

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

(Кроме того, я хотел бы быть в состоянии нормализовать эту сумму против разницы в графами, но это менее важно)

+1

Обратите внимание на '' sum', обращая особое внимание на его описание аргумента 'na.rm' функции. Затем сделайте что-нибудь вроде 'cbind (df [1], Threadsum = apply (df [-1], 1, sum, na.rm = TRUE))' –

+0

Джош, пожалуйста, ответьте, и я приму это – adrianmcmenamin

+1

Спасибо , но похоже, что ответ nico так же приемлем. Приветствия. –

ответ

3

Используйте rowSums просуммировать значения в различных потоках. Параметры na.rm заботятся о NA. Кроме того, вы хотите исключить первый столбец из суммы так:

thread.sum <- rowSums(icdata[,-1], na.rm=TRUE) 
plot(icdata[,1], thread.sum) 
Смежные вопросы