📜  排序数据框 r (1)

📅  最后修改于: 2023-12-03 14:54:42.462000             🧑  作者: Mango

排序数据框

在R语言中,我们可以使用order()sort()函数对数据框进行排序。需要注意的是,排序后数据框的行顺序会改变,所以我们可以将排序结果赋值给一个新的数据框。

order()函数

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()函数

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()函数可以方便地处理各种数据。