【问题标题】: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])
    }
    

    (我知道,通常最好使用名称而不是列号,但正如我所说,这一步可能无论如何都没有必要。)

    【讨论】:

      猜你喜欢
      • 2019-01-08
      • 2018-10-10
      • 2021-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-18
      • 2023-04-07
      • 1970-01-01
      相关资源
      最近更新 更多