在R中,获取矩阵的前10个值并将行名称输出到矢量

时间:2013-07-17 01:09:21

标签: r matrix

如何从单个列矩阵中提取前十个值,并将相应的行名输出到矢量?

我想在我生成的饼图上放置标签,但是对于我的生活无法弄清楚如何。

非常感谢。

2 个答案:

答案 0 :(得分:3)

这里的事情有点简单,因为你有一个单列矩阵,也可以被视为一个向量。

rownames(x)[order(x, decreasing=TRUE)][1:10]

这将按递减顺序返回x的前10个索引,提取x的名称的相应元素。

答案 1 :(得分:1)

这是一些数据

set.seed(123)
x =  matrix(runif(26), 26, dimnames=list(LETTERS, NULL))

生成一个命名向量以避免簿记错误,利用R将一维矩阵拖放到具有相应维度名称的向量的事实。

o = order(x, decreasing=TRUE)[1:10]
Result = x[o,]   # _named_ numeric

使用点图来更好地呈现值,尤其是便于比较量值

library(lattice)
dotplot(Result, type=c("l", "p"), cex=2, xlim=c(0, 1))

或按字母顺序排列(没有簿记担忧!)

o = order(names(Result))
dotplot(Result[o], type=c("l", "p"), cex=2, xlim=c(0, 1))