2

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

我想在我生成的饼图上贴上标签,但我一生都不知道怎么做。

非常感谢。

蒂姆

4

2 回答 2

3

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

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

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

于 2013-07-17T01:17:28.290 回答
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))
于 2013-07-17T02:17:38.673 回答