2016-04-22 70 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

请重复的例子。也许添加'输入(df)' – Heroka

回答

4

我们可以使用rowSums

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

我试过了,但它说错误:x必须是数字,但是当我将其更改为矩阵时,数值会变成乱码 –

+1

@AmosOrg请检查'str(df)'。它应该是“因素”或“字符”。在这种情况下,转换为'数字',即'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)