Aggiunta di valori di due colonne in dataframe modificate involontariamente intestazione di colonna risultato

voti
0

Ho un frame di dati e voglio aggiungere una colonna totale con il risultato della somma delle righe.

Punto di partenza:

var1 var2
  1    2
  1    2
  1    2

Risultato desiderato:

var1 var2 total
  1    2    3
  1    2    3
  1    2    3

Il mio codice lo fa, ma cambia il nome dell'intestazione della colonna totale per l'intestazione di colonna d'var1. Perché? Quale potrebbe essere una soluzione migliore?

Ecco il mio codice:

df<-data.frame( var1=c(1,1,1), var2=c(2,2,2))
df[total]<-0

for (i in 1:2 ){
  df$total = df$total + df[i] 
}
df

Risultato:

var1 var2 **var1**
  1    2    3
  1    2    3
  1    2    3
È pubblicato 24/10/2019 alle 11:59
fonte dall'utente
In altre lingue...                            


3 risposte

voti
0

È possibile youe la mutate()-funzione

library(tidyverse)

df<-df%>%mutate(total=rowsum(var1,var2))

> df
  var1 var2 total
1    1    2     3
2    1    2     3
3    1    2     3
Risposto il 24/10/2019 a 12:05
fonte dall'utente

voti
0

Ciò funzionerà e non sarà rinominare la colonna. [i]restituisce un data framedove, come [[i]]i rendimenti di una numeric. Quindi, si desidera aggiungere singoli numeri.

df<-data.frame( "var1"=c(1,1,1), "var2"=c(2,2,2))
df["total"]<-0

for (i in 1:2){
  df$total = df$total + df[[i]] 
}
Risposto il 24/10/2019 a 12:09
fonte dall'utente

voti
1

il modo corretto per farlo sono:

df$total = df$var1 + df$var2
df[["total"]] = df[["var1"]] + df[["var2"]]

notare le doppie parentesi, la soluzione funzionerà se si utilizza doppie parentesi invece di parentesi quadre singole

come Ronak suggerito:

df$total = rowSums(df)
Risposto il 24/10/2019 a 12:09
fonte dall'utente

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more