我有一些n列的简单数据帧。 对于他们中的每一个,我想将最后一列移到第一列。 由于列数是可变的,我使用:
df <- df[, c(ncol(df), 1:(ncol(df)-1))]
=============================================== ==========
但是,我不明白为什么c(12, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
和c(ncol(df), 1:(ncol(df)-1))
都会返回
[1] 12 1 2 3 4 5 6 7 8 9 10 11
和df[, c(12, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11)]
可以返回我想要的重新排序的表,
但
df[, c(ncol(df), 1:(ncol(df)-1))]
返回上面的索引向量而不是重新排序的表
谢谢!
=============================================== ================
编辑:
下面重现的例子:
df <- data.table(v1=c(1,2), v2=c(3,4), v3=c(5,6))
c(3,1,2)
c(ncol(df), 1:(ncol(df)-1))
df2 <- df[, c(3,1,2)]
df2
df3 <- df[, c(ncol(df), 1:(ncol(df)-1))]
df3