У меня есть DF, где я хочу добавить новую переменную под названием «B» во вторую позицию.Добавить новую переменную в определенную позицию в dataframe
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» во вторую позицию.Добавить новую переменную в определенную позицию в dataframe
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"))
, это сработает, но с огромными накладными расходами, если в dataframe есть сотни переменных. – Diegoal
Да, именно мой кадр данных огромен, и я хочу сделать это , Также мой кадр данных может время от времени меняться, поэтому я не хочу ссылаться на определенную нумерованную позицию. –
Если вам не нужна определенная нумерованная позиция, откуда вы знаете, куда ее поместить? –
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'? –
порядок переменных будет выглядеть как ACD B. Приказ, который я хочу иметь, это ABCD – Diegoal