2016-04-22 2 views
-3

Так что у меня есть эти данныеR сумма нескольких столбцов с множественными строки

10 21 22 23 23 43 
20 12 26 43 23 65 
21 54 64 73 25 75 

Мой ожидаемый результат:

142 
189 
312 

Я пытался использовать:

df = data.matrix(df) 
df = colSums(df) 
df = as.data.frame(df) 

Однако сумма значений неверны. Я хотел бы знать, как улучшить или исправить это решение?

+0

Пожалуйста, воспроизводимый пример. Может быть, добавить 'dput (df)' – Heroka

ответ

4

Мы можем использовать rowSums

rowSums(df) 
#[1] 142 189 312 
+0

i, но он говорит об ошибке: x должен быть числовым, но когда я меняю его на матрицу, значения становятся беспорядочными –

+1

@AmosOrg Пожалуйста, проверьте 'str (df)'. Это должен быть «фактор» или «символ». В этом случае преобразуйте в 'numeric' i.e.' df [] <- lapply (df, function (x) as.numeric (as.character (x))) ' – akrun

0

Ваши данные хранятся в качестве факторов. Вы должны преобразовать его в числовое значение с помощью as.numeric(as.character()).

В вашей ситуации я предлагаю сделать:

for(i in 1:nrow(df)){ 
    df[i,]<-as.numeric(as.character(df[i,])) 
} 
rowSums(df) 
Смежные вопросы