我试图将data.frame的最后一列(ID)移动到第一位,如何处理从最后位置移除?我想保持1:长度(df)
df.1 <- subset(df, select=c(ID,1:length(df)))
由于1:length(df),我的代码将ID复制为最后一列。我的尝试是:
df.1 <- subset(df, select=c(ID,1:length(df-1)))
这是错误的。谢谢你的帮助
答案 0 :(得分:3)
我们使用ncol(df)
以及除最后一列-ncol(df)
和cbind
之外的所有其他列对最后一列进行了子集。
df.1 <- cbind(df[ncol(df)], df[-ncol(df)])
即使没有cbind
,我们也会连接列索引以将最后一列移到前面。
df.1 <- df[c(ncol(df), 1:(ncol(df)-1))]
或者我们可以使用列名进行子集化。作为&#39; ID&#39;被提到是最后一栏。我们连接了ID&#39;和除了&#39; ID&#39;之外的所有其他列名使用setdiff
移动最后一列。
df.1 <- df[c('ID',setdiff(names(df), 'ID'))]
set.seed(24)
df <- as.data.frame(matrix(sample(0:5, 5*6, replace=TRUE), ncol=5))
df$ID <- 1:6