将新变量添加到数据框中的特定位置

时间:2013-02-12 12:07:10

标签: r

我有一个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

有人有想法吗?

2 个答案:

答案 0 :(得分:9)

最简单的方法是添加所需的列,然后重新排序:

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"))

答案 1 :(得分:0)

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只是一个数字向量