【发布时间】:2020-01-03 14:53:49
【问题描述】:
我想根据另一个数据框列中给出的文本变量对数据框的列进行排序(使用data.table 中的srtcolorder)。假设我有第一个数据框(df1),列命名和排序为“五”、“二”、“三”、“一”、“四”,并且有另一个数据框与列(df2$names ),包含排序为“一”、“二”、“三”、“四”、“五”的字符串变量。如何根据df2$names中的变量对df1的列进行排序?
我尝试使用setcolorder如下:
gf3<-setcolorder(df1, key=df2$names)
并得到一条错误消息
setcolorder(df1, key = df2$names) 中的错误: 未使用的参数(key = df2$names)
【问题讨论】:
-
如果它是一个 data.table 做
df1[, mget(df2$names)]。 stackoverflow.com/questions/30562602/… 的可能重复项 -
请通过添加当前和预期的输出使您的问题更具可重复性。使用
dput(head(df,n))提供示例数据。 -
参数名称是
neworder而不是key.... -
亲爱的 Sindri Baldur, 感谢您的回复。我试过 df3
-
尊敬的 NelsonGon,非常感谢您的回复。我不确定 dput(head(df,n)) 是否可以在这里工作,因为我的数据集包含 183 个变量的 2087 个观察值。
标签: r data.table