如何在 R 資料框中排序數值型因子列?
要對 R 資料框中的數值型因子列進行排序,我們需要使用 as.character 函式將該列轉換為字元型,然後使用 as.numeric 函式轉換為數值型,最後使用 order 函式進行排序。
例如,如果我們有一個名為 df 的資料框,其中包含一個名為 F 的數值型因子列,則可以使用以下命令對 F 進行排序:
df[order(as.numeric(as.character(df$F))),]
示例 1
以下程式碼片段建立了一個示例資料框:
Class<-factor(sample(1:4,20,replace=TRUE)) Sales<-sample(1:50,20) df1<-data.frame(Class,Sales) df1
建立了以下資料框
Class Sales 1 1 4 2 2 13 3 3 2 4 2 39 5 2 23 6 3 37 7 4 33 8 3 16 9 4 17 10 2 20 11 3 50 12 1 27 13 4 6 14 4 19 15 4 48 16 3 43 17 4 31 18 3 35 19 2 14 20 4 45
要在上面建立的資料框中對 df1 的 Class 列進行排序,請將以下程式碼新增到上述程式碼片段中:
Class<-factor(sample(1:4,20,replace=TRUE)) Sales<-sample(1:50,20) df1<-data.frame(Class,Sales) df1[order(as.numeric(as.character(df1$Class))),]
輸出
如果您將以上所有程式碼片段作為一個程式執行,它將生成以下輸出:
Class Sales 1 1 4 12 1 27 2 2 13 4 2 39 5 2 23 10 2 20 19 2 14 3 3 2 6 3 37 8 3 16 11 3 50 16 3 43 18 3 35 7 4 33 9 4 17 13 4 6 14 4 19 15 4 48 17 4 31 20 4 45
示例 2
以下程式碼片段建立了一個示例資料框:
Group<-factor(sample(1:3,20,replace=TRUE)) Demand<-sample(500:1000,20) df2<-data.frame(Group,Demand) df2
建立了以下資料框
Group Demand 1 1 625 2 3 855 3 3 809 4 2 951 5 2 939 6 2 629 7 2 902 8 1 903 9 3 633 10 1 886 11 1 962 12 2 577 13 1 660 14 3 709 15 1 584 16 3 889 17 1 762 18 3 594 19 2 779 20 2 859
要在上面建立的資料框中對 df2 的 Group 列進行排序,請將以下程式碼新增到上述程式碼片段中:
Group<-factor(sample(1:3,20,replace=TRUE)) Demand<-sample(500:1000,20) df2<-data.frame(Group,Demand) df2[order(as.numeric(as.character(df2$Group))),]
輸出
如果您將以上所有程式碼片段作為一個程式執行,它將生成以下輸出:
Group Demand 1 1 625 8 1 903 10 1 886 11 1 962 13 1 660 15 1 584 17 1 762 4 2 951 5 2 939 6 2 629 7 2 902 12 2 577 19 2 779 20 2 859 2 3 855 3 3 809 9 3 633 14 3 709 16 3 889 18 3 594
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP