Jak zamienić wiele wartości w ramce danych za pomocą dplyr


Możesz użyć następującej podstawowej składni, aby zastąpić wiele wartości w ramce danych w R za pomocą funkcji z pakietu dplyr :

 library (dplyr)

df %>%
  mutate(var1 = recode(var1, ' oldvalue1 ' = ' newvalue1 ', ' oldvalue2 ' = ' newvalue2 '), 
         var2 = recode(var2, ' oldvalue1 ' = ' newvalue1 ', ' oldvalue2 ' = ' newvalue2 '))

Poniższy przykład pokazuje, jak zastosować tę składnię w praktyce.

Przykład: Zamień wiele wartości za pomocą dplyr

Załóżmy, że mamy następującą ramkę danych w R, która zawiera informacje o różnych koszykarzach:

 #create data frame
df <- data. frame (conf=c('East', 'East', 'West', 'West', 'North'),
                 position=c('Guard', 'Guard', 'Guard', 'Guard', 'Forward'),
                 dots=c(22, 25, 29, 13, 18))

#view data frame
df

   conf position points
1 East Guard 22
2 East Guard 25
3 West Guard 29
4 West Guard 13
5 North Forward 18

Załóżmy teraz, że chcemy zastąpić następujące wartości w ramce danych:

  • Kolumna „conf”:
    • Zamień „Wschód” na „E”
    • Zmień „Zachód” na „W”
    • Zamień „Północ” na „N”
  • Kolumna „Pozycja”:
    • Zmień „Straż” na „G”
    • Zmień „Naprzód” na „F”

Możemy w tym celu użyć funkcji mutate() i recode() :

 library (dplyr)

#replace multiple values in conf and position columns
df %>%
  mutate(conf = recode(conf, ' East ' = ' E ', ' West ' = ' W ', ' North ' = ' N '), 
         position = recode(position, ' Guard ' = ' G ', ' Forward ' = ' F '))

  conf position points
1EG 22
2 EG 25
3 WG 29
4 WG 13
5 NF 18

Należy pamiętać, że każda z wartości w kolumnach „conf” i „position” została zastąpiona określonymi wartościami.

Należy również pamiętać, że wartości w kolumnie „punkty” pozostały niezmienione.

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania za pomocą dplyr:

Jak przekodować wartości za pomocą dplyr
Jak zamienić NA na Zero w dplyr
Jak filtrować wiersze zawierające określony ciąg za pomocą dplyr

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *