如何在R语言中将数据框的行按字母顺序排序?
如果我们在R语言数据框的列中存储字符串数据,我们可能希望按字母顺序对数据框的行进行排序。这可以使用`apply`、`sort`和`t`(转置)函数来完成。
例如,如果我们有一个包含字符串数据的名为`df`的数据框,则可以使用以下命令按字母顺序对`df`进行排序:
t(apply(df,1,sort))
示例 1
以下代码片段创建了一个示例数据框:
x1<-sample(LETTERS[1:26],20) x2<-sample(LETTERS[1:26],20) x3<-sample(LETTERS[1:26],20) df1<-data.frame(x1,x2,x3) df1
输出
创建了以下数据框:
x1 x2 x3 1 Z L Y 2 Q W J 3 P S Z 4 U E C 5 M C K 6 H G M 7 L A I 8 F Q T 9 R T G 10 X N P 11 T I L 12 N J E 13 E X R 14 Y U N 15 W D W 16 S M F 17 B O V 18 A B U 19 I Z D 20 O F A
要按字母顺序对`df1`的行进行排序,请将以下代码添加到上面的代码片段中:
x1<-sample(LETTERS[1:26],20) x2<-sample(LETTERS[1:26],20) x3<-sample(LETTERS[1:26],20) df1<-data.frame(x1,x2,x3) t(apply(df1,1,sort))
输出
如果您将以上所有代码作为单个程序执行,它将生成以下输出:
[,1] [,2] [,3] [1,] "L" "Y" "Z" [2,] "J" "Q" "W" [3,] "P" "S" "Z" [4,] "C" "E" "U" [5,] "C" "K" "M" [6,] "G" "H" "M" [7,] "A" "I" "L" [8,] "F" "Q" "T" [9,] "G" "R" "T" [10,] "N" "P" "X" [11,] "I" "L" "T" [12,] "E" "J" "N" [13,] "E" "R" "X" [14,] "N" "U" "Y" [15,] "D" "W" "W" [16,] "F" "M" "S" [17,] "B" "O" "V" [18,] "A" "B" "U" [19,] "D" "I" "Z" [20,] "A" "F" "O"
示例 2
以下代码片段创建了一个示例数据框:
y1<-sample(c("India","Russia","China"),20,replace=TRUE) y2<-sample(c("UK","USA","Egpyt"),20,replace=TRUE) y3<-sample(c("Sudan","Nepal","Croatia"),20,replace=TRUE) df2<-data.frame(y1,y2,y3) df2
输出
创建了以下数据框:
y1 y2 y3 1 India UK Nepal 2 India Egpyt Sudan 3 China USA Nepal 4 China USA Sudan 5 Russia UK Nepal 6 India Egpyt Sudan 7 India UK Croatia 8 China USA Nepal 9 India Egpyt Nepal 10 Russia UK Croatia 11 Russia UK Nepal 12 India UK Croatia 13 Russia USA Nepal 14 Russia Egpyt Nepal 15 India Egpyt Croatia 16 India Egpyt Nepal 17 China UK Nepal 18 India UK Sudan 19 India Egpyt Croatia 20 Russia USA Nepal
要按字母顺序对`df2`的行进行排序,请将以下代码添加到上面的代码片段中:
y1<-sample(c("India","Russia","China"),20,replace=TRUE) y2<-sample(c("UK","USA","Egpyt"),20,replace=TRUE) y3<-sample(c("Sudan","Nepal","Croatia"),20,replace=TRUE) df2<-data.frame(y1,y2,y3) t(apply(df2,1,sort))
输出
如果您将以上所有代码作为单个程序执行,它将生成以下输出:
[,1] [,2] [,3] [1,] "India" "Nepal" "UK" [2,] "Egpyt" "India" "Sudan" [3,] "China" "Nepal" "USA" [4,] "China" "Sudan" "USA" [5,] "Nepal" "Russia" "UK" [6,] "Egpyt" "India" "Sudan" [7,] "Croatia" "India" "UK" [8,] "China" "Nepal" "USA" [9,] "Egpyt" "India" "Nepal" [10,] "Croatia" "Russia" "UK" [11,] "Nepal" "Russia" "UK" [12,] "Croatia" "India" "UK" [13,] "Nepal" "Russia" "USA" [14,] "Egpyt" "Nepal" "Russia" [15,] "Croatia" "Egpyt" "India" [16,] "Egpyt" "India" "Nepal" [17,] "China" "Nepal" "UK" [18,] "India" "Sudan" "UK" [19,] "Croatia" "Egpyt" "India" [20,] "Nepal" "Russia" "USA"
广告