Ho un DF in cui voglio aggiungere una nuova variabile chiamata "B" nella seconda posizione.Aggiungere una nuova variabile a una posizione specifica nel dataframe
A C D
1 1 5 2
2 3 3 7
3 6 2 3
4 6 4 8
5 1 1 2
Qualcuno ha un'idea?
Ho un DF in cui voglio aggiungere una nuova variabile chiamata "B" nella seconda posizione.Aggiungere una nuova variabile a una posizione specifica nel dataframe
A C D
1 1 5 2
2 3 3 7
3 6 2 3
4 6 4 8
5 1 1 2
Qualcuno ha un'idea?
Il modo più semplice sarebbe quella di aggiungere le colonne che si desidera e quindi riordinarli:
dat$B <- 1:5
newdat <- dat[, c("A", "B", "C", "D")]
Un altro modo:
newdat <- cbind(dat[1], B=1:5, dat[,2:3])
Se siete preoccupati per la testa, forse una soluzione data.table
? (Con l'aiuto di this answer):
library(data.table)
dattable <- data.table(dat)
dattable[,B:=1:5]
setcolorder(dattable, c("A", "B", "C", "D"))
questo funzionerebbe ma con un immenso sovraccarico se il dataframe ha centinaia di variabili – Diegoal
Sì, il mio data frame è enorme e voglio fare questo . Anche il mio frame di dati potrebbe cambiare di volta in volta, quindi non voglio fare riferimento a una specifica posizione numerata –
Se non vuoi una posizione numerata specifica, come fai a sapere dove metterla? –
dat$B <- 1:5
ind <- c(1:which(names(data) == "A"),ncol(data),(which(names(data) == "A")+1):ncol(data)-1)
data <- data[,ind]
Creare la variabile al termine della data.frame e quindi utilizzando un indicatore vettore di segnalazione come riordinare le colonne. ind è solo un vettore di numeri
'DF $ B <- newvariable'? –
l'ordine delle variabili sembrerebbe ACD B. L'ordine che voglio avere è ABCD – Diegoal