首页 > 解决方案 > 是否有 R 函数对数据框进行排序

问题描述

我试图对以下数据框进行排序。但我得到错误

sort(test,decreasing = TRUE)

[.data.frame(x, order(x, na.last = na.last, 递减 = 递减))中的错误:选择了未定义的列”

   test <- data.frame(x = c(26, 21, 20), y = c(34, 29, 28))
   sort(test$y,decreasing = TRUE)
   [1] 34 29 28

但是我需要

    x  y
 1 20 28
 2 21 29
 3 26 34

标签: r

解决方案


我们可以order用来获取索引并使用它来对数据行进行排序

test[order(test$y),]
#   x  y
#3 20 28
#2 21 29
#1 26 34

sort返回排序后的值。如果我们也需要索引,请使用index.return = TRUE(默认情况下它是FALSE),那么它将返回一个list向量 - 值和索引的“ix”。提取索引并用于排序


推荐阅读