我想重新排列基於行名的自定義順序的表中的行,但我的行名稱是字符而不是數字。基於非數字小排序重新排序表
我使用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