我试图对以下数据框进行排序。但我收到类似
的错误sort(test,decreasing = TRUE)
[.data.frame
中的错误(x,顺序(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
答案 0 :(得分:2)
我们可以使用order
来获取索引,并使用该索引对数据行进行排序
test[order(test$y),]
# x y
#3 20 28
#2 21 29
#1 26 34
sort
返回排序后的值。如果还需要索引,请使用index.return = TRUE
(默认为FALSE
),然后它将返回list
个向量-索引的值和'ix'。提取索引并用于订购
答案 1 :(得分:1)
您需要减少为FALSE
而不是TRUE
:
test[sort(test$y, decreasing = FALSE,index.return=TRUE)[[2]],]
x y
3 20 28
2 21 29
1 26 34