我想排序两列到我的data.table(id和时间在我的情况)的前面。说我有:R:只改变一些列的data.table中的列顺序
library(data.table)
Data <- as.data.table(iris)
,说我想要的列的顺序是:
example <- Data
setcolorder(example,c("Species","Petal.Length","Sepal.Length",
"Sepal.Width","Petal.Length","Petal.Width"))
但我的实际数据表有更多的变数,所以我想ADRESS此为:
setcolorder(Data,c("Species","Petal.Length",
names(Data)[!c("Species","Petal.Length")]))
:
setcolorder(Data, c("Species","Petal.Length",
...all other variables in their original order...))
我喜欢的东西发挥各地
但我有一个问题,通过名称引用对字符向量名称(Data)进行子集化。另外我敢肯定,我可以用一些整洁的data.table函数来避免这种解决方法,不是吗?
啊,是的,谢谢!这使解决方法工作。我会接受你的答案,如果没有data.table解决方案弹出(我的意思是,我们必须创建一个所有名称的矢量首先看起来有点不典型,不?)的事实 –
你需要创建这个向量的名称,编程没有魔法。 –
好吧,你不需要'魔术'。在这里你会在Stata中做什么:“order Species Petal.Length”和我虽然data.table可能有一些类似的语法。但仍然感谢排除,我接受了答案。 –