我有一个相当长的数据框,有200多列,如下所示:
RespondentID Q16_positiv.31 Q16_positiv.68 Q16_positiv.194 ....
有没有办法对数字上升的Q16_positiv.XYZ变量进行排序?我所有的尝试都使用了aplhabetical排序,这确实产生了预期的结果。
答案 0 :(得分:2)
听起来你会对“gtools”中的mixedsort
函数感兴趣。
考虑以下示例数据:
set.seed(1)
x <- paste("Q", sample(5, 20, TRUE), sample(20, 20, TRUE), sep = "_")
x
# [1] "Q_2_19" "Q_2_5" "Q_3_14" "Q_5_3" "Q_2_6" "Q_5_8" "Q_5_1"
# [8] "Q_4_8" "Q_4_18" "Q_1_7" "Q_2_10" "Q_1_12" "Q_4_10" "Q_2_4"
# [15] "Q_4_17" "Q_3_14" "Q_4_16" "Q_5_3" "Q_2_15" "Q_4_9"
以下是sort
:
sort(x)
# [1] "Q_1_12" "Q_1_7" "Q_2_10" "Q_2_15" "Q_2_19" "Q_2_4" "Q_2_5"
# [8] "Q_2_6" "Q_3_14" "Q_3_14" "Q_4_10" "Q_4_16" "Q_4_17" "Q_4_18"
# [15] "Q_4_8" "Q_4_9" "Q_5_1" "Q_5_3" "Q_5_3" "Q_5_8"
以下是mixedsort
:
library(gtools)
mixedsort(x)
# [1] "Q_1_7" "Q_1_12" "Q_2_4" "Q_2_5" "Q_2_6" "Q_2_10" "Q_2_15"
# [8] "Q_2_19" "Q_3_14" "Q_3_14" "Q_4_8" "Q_4_9" "Q_4_10" "Q_4_16"
# [15] "Q_4_17" "Q_4_18" "Q_5_1" "Q_5_3" "Q_5_3" "Q_5_8"
我希望这足以对您有所帮助 - 否则,请使用可重复的示例更新您的问题。