📅  最后修改于: 2023-12-03 14:54:42.462000             🧑  作者: Mango
在R语言中,我们可以使用order()
或sort()
函数对数据框进行排序。需要注意的是,排序后数据框的行顺序会改变,所以我们可以将排序结果赋值给一个新的数据框。
order()
函数将返回排序后的行索引,我们可以使用此索引重新排列数据框。
# 创建一个数据框并按'distance'列升序排列
df <- data.frame(city = c('New York', 'Los Angeles', 'Chicago', 'Houston', 'Phoenix'),
distance = c(789, 344, 283, 1345, 685))
sorted_index <- order(df$distance, decreasing = FALSE) # 升序排列
df_sorted <- df[sorted_index, ]
df_sorted
结果:
| | city | distance | |---|------------|----------| | 3 | Chicago | 283 | | 2 | Los Angeles | 344 | | 5 | Phoenix | 685 | | 1 | New York | 789 | | 4 | Houston | 1345 |
sort()
函数接受整个数据框作为输入,我们可以指定要按哪一列排序。
# 按'distance'列降序排列
df_sorted <- sort(df, decreasing = TRUE, by = 'distance')
df_sorted
结果:
| | city | distance | |---|------------|----------| | 4 | Houston | 1345 | | 1 | New York | 789 | | 5 | Phoenix | 685 | | 2 | Los Angeles | 344 | | 3 | Chicago | 283 |
如果数据框中有缺失值,order()
函数会将缺失值排在最后(默认排序方式)。如果需要将缺失值排在最前面,我们可以添加一个na.last
参数并将其设置为FALSE
。
对于字符串类型的列,排序方式遵循字典序。
排序数据框是数据处理中非常基础的操作,掌握如何使用order()
和sort()
函数可以方便地处理各种数据。