多列所以我有这个数据[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)
然而,总和的价值观是错误的。我想知道如何改进或更正此解决方案?
多列所以我有这个数据[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)
然而,总和的价值观是错误的。我想知道如何改进或更正此解决方案?
我们可以使用rowSums
rowSums(df)
#[1] 142 189 312
我试过了,但它说错误:x必须是数字,但是当我将其更改为矩阵时,数值会变成乱码 –
@AmosOrg请检查'str(df)'。它应该是“因素”或“字符”。在这种情况下,转换为'数字',即'df [] < - lapply(df,function(x)as.numeric(as.character(x)))'' – akrun
您的数据存储为因素。您必须使用as.numeric(as.character())
将其转换为数字。
在你的情况,我建议做:
for(i in 1:nrow(df)){
df[i,]<-as.numeric(as.character(df[i,]))
}
rowSums(df)
请重复的例子。也许添加'输入(df)' – Heroka