A:如何使用 row.names 属性对数据框进行排序
您可以使用以下两种方法使用row.names属性对 R 中的数据帧进行排序:
方法1:使用row.names字符排序
df[order( row.names (df)), ]
方法 2:使用数字 row.names 排序
df[order(as. numeric (row. names (df))), ]
以下示例展示了如何在实践中使用每种方法。
示例 1:使用字符行名称对数据框进行排序
假设我们在 R 中有以下数据框:
#create data frame
df <- data. frame (position=c('G', 'G', 'F', 'F', 'C'),
points=c(99, 90, 86, 88, 95),
assists=c(33, 28, 31, 39, 34),
rebounds=c(30, 28, 24, 24, 28))
#set row names of data frame
row. names (df) <- c('A', 'C', 'E', 'D', 'B')
#view data frame
df
position points assists rebounds
GA 99 33 30
CG 90 28 28
EF 86 31 24
FD 88 39 24
BC 95 34 28
我们可以使用以下语法使用row.names属性按字母顺序对数据框中的行进行排序:
#sort rows alphabetically using row.names
df[order( row.names (df)), ]
position points assists rebounds
GA 99 33 30
BC 95 34 28
CG 90 28 28
FD 88 39 24
EF 86 31 24
行根据行名称值从 A 到 Z 排序。
您还可以使用参数Descending=TRUE从 Z 到 A 排序:
#sort rows from Z to A using row.names
df[order(row. names (df), decreasing= TRUE ), ]
position points assists rebounds
EF 86 31 24
FD 88 39 24
CG 90 28 28
BC 95 34 28
GA 99 33 30
示例 2:使用数字行名称对数据框进行排序
假设我们在 R 中有以下数据框:
#create data frame
df <- data. frame (position=c('G', 'G', 'F', 'F', 'C'),
points=c(99, 90, 86, 88, 95),
assists=c(33, 28, 31, 39, 34),
rebounds=c(30, 28, 24, 24, 28))
#set row names of data frame
row. names (df) <- c(1, 100, 4, 12, 19)
#view data frame
df
position points assists rebounds
1G 99 33 30
100G 90 28 28
4 F 86 31 24
12 F 88 39 24
19 C 95 34 28
我们可以使用以下语法使用row.names属性对数据框中的行进行排序:
#sort by row names from smallest to largest
df[order(as. numeric (row. names (df))), ]
position points assists rebounds
1G 99 33 30
4 F 86 31 24
12 F 88 39 24
19 C 95 34 28
100G 90 28 28
我们还可以使用降序=TRUE从最大到最小排序:
#sort by row names from largest to smallest
df[order(as. numeric (row. names (df)), decreasing= TRUE ), ]
position points assists rebounds
100G 90 28 28
19 C 95 34 28
12 F 88 39 24
4 F 86 31 24
1G 99 33 30
其他资源
以下教程解释了如何在 R 中执行其他常见操作:
如何在 R 中使用 sort()、order() 和 Rank()
R中如何按多列排序
如何在 R 中按日期对数据框进行排序