【问题标题】:Sum selected rows in a character matrix: error 'x' must be numeric in R对字符矩阵中的选定行求和:错误“x”在 R 中必须是数字
【发布时间】:2013-08-14 18:02:38
【问题描述】:
我是 R 的新手,这真的很基础,但它不适合我。我想在这个 data.frame 中对 col 6:11 的行求和,例如:
输入(tab.res)
tab.res
这应该解决了这个问题:
tab.res$total
但我不断得到:
rowSums(subset(tab.res, select = 6:11)) 中的错误:“x”必须是数字
我尝试使用“as.numeric”来转换出现错误的任何内容,但我没有得到任何结果...有人打电话告诉我问题出在哪里?
【问题讨论】:
标签:
r
dataframe
numeric
rowsum
【解决方案1】:
您应该使用数据框,而不是矩阵,因为您确实有几种不同的数据类型。我怀疑您可以将数据作为数据框读取,但如果您想将 tab.res 中的内容转换为数据框,并在第 3-11 列中包含数值:
tab.res <- as.data.frame(tab.res, stringsAsFactors=FALSE)
for (column in 3:11) {
tab.res[, column] <- as.numeric(tab.res[, column])
}
(我知道,通常最好使用名称而不是列号,但正如我所说,这一步可能无论如何都没有必要。)