我想重新排列基于行名的自定义顺序的表中的行,但我的行名称是字符而不是数字。基于非数字小排序重新排序表
我使用table
工具创建了数据表中的R从一个更大的数据帧:
data <- table(allcones$Type, allcones$Location)[,]
这给了我一个表,看起来像这样:
> Ada Alf Lk Lnd Myv Raud D 3 0 10 0 59 0 H 3777 0 0 0 8 0 L 11 0 34 4 34 5 P 0 0 0 0 187 0 S 585 0 1880 0 460 109 T 100 0 0 0 233 0 U 234 517 401 4057 9 0
行名称(D,H,L ...)目前按字母顺序排列,我认为这是R中的默认值。但是,它们每个都反映不同的数据类别,所以我想将它们放入一个客户汤姆的顺序。
我尝试使用 reorder(row.names(data), new.order=c('L', 'D', 'S', 'T', 'H', 'P', 'U'))
基于本网站上的其他问题,但这是行不通的。看来row.names(data)
在reorder
函数中不是有效的参数。
我不想创建一个新的列来强制执行订单,因为我使用这些数据来制作表格的堆积barplot(使用barplot(data, ...)
),我不知道如何摆脱额外的柱。
任何想法?
注意'data'在OP的例子是类“table”的对象(它实际上是一个包含一些额外内容的矩阵),而不是数据框。 –
@GavinSimpson谢谢。我错过了。 – lmo