如何从单列矩阵中提取前十个值,并将相应的行名输出到向量?
我想在我生成的饼图上贴上标签,但我一生都不知道怎么做。
非常感谢。
蒂姆
这里的事情有点简单,因为你有一个单列矩阵,它也可以被视为一个向量。
rownames(x)[order(x, decreasing=TRUE)][1:10]
这将按降序返回 x 的前 10 个索引,提取 x 名称的相应元素。
这是一些数据
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))