【发布时间】:2015-02-13 01:43:50
【问题描述】:
我正在尝试从数据框中提取值的子集以获取子集的平均值,但我不知道该怎么做。
我试过了
kg_name=cat(shQuote(k_categories[1,]), "\n")
m[1] = mean(subset(dt, dt[2]==kg_name)[,1])
所以我必须提取的值的类别在这个 k_categories 向量中。例如,它们是一、二和三。在第一行代码中,我为值添加了引号,这样我就可以得到“一”、“二”、“三”。现在第二行尝试通过提取与第二列中的字符串“one”匹配的双列数据框 dt 的值来计算平均值。
如果我这样做,现在一切正常
m[1] = mean(subset(dt, dt[2]=="one")[,1])
但是,如果我从 k_categories 中提取类别的名称,则会出现此错误(我还放了部分跟踪)
Error in matrix(unlist(value, recursive = FALSE, use.names = FALSE), nrow = nr, :
length of 'dimnames' [2] not equal to array extent
8 matrix(unlist(value, recursive = FALSE, use.names = FALSE), nrow = nr,
dimnames = list(rn, cn))
7 Ops.data.frame(dt[2], kg_name)
6 eval(expr, envir, enclos)
5 eval(e, x, parent.frame())
4 subset.data.frame(dt, dt[2] == kg_name)
3 subset(dt, dt[2] == kg_name)
编辑(添加 dt 数据框示例)
Values Categories
1 one
3 two
2 three
4 one
3 two
2 two
【问题讨论】:
-
您能否举例说明您拥有的矩阵类型以及您要为其计算汇总统计的子集?
-
完成。我打印了矩阵的头部