Come sostituire i valori nel frame di dati in r (con esempi)


È possibile utilizzare la seguente sintassi per sostituire un particolare valore in un frame di dati in R con un nuovo valore:

 df[df == ' Old Value '] <- ' New value '

È possibile utilizzare la seguente sintassi per sostituire uno dei tanti valori in un frame di dati con un nuovo valore:

 df[df == ' Old Value 1 ' | df == ' Old Value 2 '] <- ' New value '

Ed puoi utilizzare la seguente sintassi per sostituire un valore particolare in una colonna specifica di un frame di dati con un nuovo valore:

 df['column1'][df['column1'] == ' Old Value '] <- ' New value '

Gli esempi seguenti mostrano come utilizzare questa sintassi nella pratica.

Esempio 1: sostituire un particolare valore nell’intero frame di dati

Il codice seguente mostra come sostituire un particolare valore con un nuovo valore in un intero frame di dati:

 #create data frame
df <- data. frame (a = as. factor (c(1, 5, 7, 8)),
                 b = c('A', 'B', 'C', 'D'),
                 c = c(14, 14, 19, 22),
                 d = c(3, 7, 14, 11))

#view data frame
df

  abcd
1 1 To 14 3
2 5 B 14 7
3 7 C 19 14
4 8 D 22 11

#replace '14' with '24' across entire data frame
df[df == 14] <- 24

#view updated data frame
df 

  abcd
1 1 To 24 3
2 5 B 24 7
3 7 C 19 24
4 8 D 22 11

Esempio 2: sostituisci uno dei diversi valori nell’intero frame di dati

Il codice seguente mostra come sostituire uno dei diversi valori con un nuovo valore in un intero frame di dati:

 #create data frame
df <- data. frame (a = as. factor (c(1, 5, 7, 8)),
                 b = c('A', 'B', 'C', 'D'),
                 c = c(14, 14, 19, 22),
                 d = c(3, 7, 14, 11))

#view data frame
df

  abcd
1 1 To 14 3
2 5 B 14 7
3 7 C 19 14
4 8 D 22 11

#replace '14' and '19' with '24' across entire data frame
df[df == 14 | df == 19] <- 24

#view updated data frame
df

  abcd
1 1 To 24 3
2 5 B 24 7
3 7 C 24 24
4 8 D 22 11

Esempio 3: sostituire il valore in una colonna specifica del frame di dati

Il codice seguente mostra come sostituire un valore particolare con un nuovo valore in una colonna specifica di un frame di dati:

 #create data frame
df <- data. frame (a = as. factor (c(1, 5, 7, 8)),
                 b = c('A', 'B', 'C', 'D'),
                 c = c(14, 14, 19, 22),
                 d = c(3, 7, 14, 11))

#view data frame
df

  abcd
1 1 To 14 3
2 5 B 14 7
3 7 C 19 14
4 8 D 22 11

#replace '14' in column c with '24'
df['c'][df['c'] == 14] <- 24

#view updated data frame
df 

  abcd
1 1 To 24 3
2 5 B 24 7
3 7 C 19 14
4 8 D 22 11

Esempio 4: sostituire i valori di una variabile fattore nel frame di dati

Se tenti di sovrascrivere un valore particolare di una variabile fattore, verrà visualizzato il seguente messaggio di avviso:

 #create data frame
df <- data. frame (a = as. factor (c(1, 5, 7, 8)),
                 b = c('A', 'B', 'C', 'D'),
                 c = c(14, 14, 19, 22),
                 d = c(3, 7, 14, 11))

#attempt to replace '1' with '24' in column a
df['a'][df['a'] == 1] <- 24

Warning message:
In `[<-.factor`(`*tmp*`, thisvar, value = 24):
  invalid factor level, NA generated
     abcd
1 <NA> A 14 3
2 5 B 14 7
3 7 C 19 14
4 8 D 22 11

Per evitare questo avviso, è necessario prima convertire la variabile fattore in una variabile numerica:

 #convert column a to numeric
df$a <- as. numeric (as. character (df$a))

#replace '1' with '24' in column a
df['a'][df['a'] == 1] <- 24

#view updated data frame
df

   abcd
1 24 A 14 3
2 5 B 14 7
3 7 C 19 14
4 8 D 22 11

Risorse addizionali

Come sostituire i NA con stringhe in R
Come imputare tutti i valori mancanti in R

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *