我有一個DF,我想在第二個位置添加一個名爲「B」的新變量。將新變量添加到數據框中的特定位置
A C D
1 1 5 2
2 3 3 7
3 6 2 3
4 6 4 8
5 1 1 2
任何人都有想法嗎?
我有一個DF,我想在第二個位置添加一個名爲「B」的新變量。將新變量添加到數據框中的特定位置
A C D
1 1 5 2
2 3 3 7
3 6 2 3
4 6 4 8
5 1 1 2
任何人都有想法嗎?
最簡單的方法是添加你想要的列,然後對它們重新排序:
dat$B <- 1:5
newdat <- dat[, c("A", "B", "C", "D")]
另一種方式:
newdat <- cbind(dat[1], B=1:5, dat[,2:3])
如果你關心的開銷,也許data.table
解決方案? (隨着從this answer幫助):
library(data.table)
dattable <- data.table(dat)
dattable[,B:=1:5]
setcolorder(dattable, c("A", "B", "C", "D"))
這可以工作,但如果數據幀有數百個變量,則會產生巨大的開銷 – Diegoal 2013-02-12 12:21:03
是的,我的數據框很大,我想這樣做。此外,我的數據框可能會不時變化,所以我不想引用具體的編號位置 – 2016-10-18 15:31:38
如果您不想要一個特定的編號位置,您怎麼知道把它放在哪裏? – 2016-10-20 16:33:03
dat$B <- 1:5
ind <- c(1:which(names(data) == "A"),ncol(data),(which(names(data) == "A")+1):ncol(data)-1)
data <- data[,ind]
在data.frame的端部創建變量,然後使用指示符矢量信令如何重新排序的列。 ind只是一個數字矢量
'DF $ B < - newvariable'? – 2013-02-12 12:10:26
變量的順序看起來像ACD B.我想要的順序是ABCD – Diegoal 2013-02-12 12:18:53