【发布时间】:2016-11-05 08:51:00
【问题描述】:
我有以下data.frame
ID<-c("ID_1","ID_2","ID_3","ID_5","ID_1008","ID_6","ID_10")
SomethingElse<-c(5,6,7,1,2,3,1)
SomeText<-c("Thank","you","for","the","!","help","!")
df<-data.frame(ID,SomethingElse,SomeText)
我需要的是根据 ID 列对 data.frame 进行排序,但要考虑其中的数字(1、2、3、5、1008、6、10),以便结果如下所示:
ID SomethingElse SomeText
ID_1 5 Thank
ID_2 6 you
ID_3 7 for
ID_5 1 the
ID_6 3 help
ID_10 1 !
ID_1008 2 !
我的问题是使用命令df[order(df$ID),]
它按字典顺序排列结果
这是“错误的”,如下所示:
ID SomethingElse SomeText
ID_1 5 Thank
ID_10 1 !
ID_1008 2 !
ID_2 6 you
ID_3 7 for
ID_5 1 the
ID_6 3 help
有没有流畅快速的单线解决这个问题?
【问题讨论】:
-
@user2100721
mixedorder无法解决此问题。 -
@deset 完全去掉“ID_”或使用 akrun 代码的内部创建一个新变量可能是个好主意。
-
@Imo 是的,你是对的,我也想过,但是我在更长的代码中使用了这个 ID,这是顺序很重要的第一步。我只是不应该从一开始就使用“ID_”部分......