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