Odp.: jak dodać kolumnę do ramki danych na podstawie innych kolumn


Możesz użyć następującej podstawowej składni, aby dodać kolumnę do ramki danych w R na podstawie wartości pozostałych kolumn:

 #add new column 'col3' with values based on columns 1 and 2
df$col3 <- with (df, ifelse (col1 > col2, value_if_true, value_if_false))

Poniższe przykłady pokazują, jak używać tej składni w praktyce.

Przykład 1: Dodaj kolumnę ze znakami na podstawie innych kolumn

Poniższy kod pokazuje jak dodać nową kolumnę znakową na podstawie wartości pozostałych kolumn w ramce danych:

 #create data frame
df <- data. frame (team=c('Mavs', 'Cavs', 'Spurs', 'Nets'),
                 scored=c(99, 90, 84, 96),
                 allowed=c(95, 80, 87, 95))

#view data frame
df

   team scored allowed
1 Mavs 99 95
2 Cavs 90 80
3 Spurs 84 87
4 Nets 96 95

#add 'result' column based on values in 'scored' and 'allowed' columns
df$result <- with (df, ifelse (scored > allowed, ' Win ', ' Loss '))

#view updated data frame
df

   team scored allowed result
1 Mavs 99 95 Win
2 Cavs 90 80 Win
3 Spurs 84 87 Losses
4 Nets 96 95 Win

Poniższy kod pokazuje, jak dodać nową kolumnę znakową, która łączy dwie funkcje ifelse() w celu wygenerowania trzech potencjalnych wartości w nowej kolumnie:

 #create data frame
df <- data. frame (team=c('Mavs', 'Cavs', 'Spurs', 'Nets'),
                 scored=c(99, 90, 84, 96),
                 allowed=c(95, 80, 87, 95))

#view data frame
df

   team scored allowed
1 Mavs 99 95
2 Cavs 90 80
3 Spurs 84 87
4 Nets 96 95

#add 'quality' column based on values in 'scored' and 'allowed' columns
df$quality <- with (df, ifelse (scored > 95, ' great ',
                         ifelse (scored > 85, ' good ', ' bad ')))

#view updated data frame
df

   team scored allowed quality
1 Mavs 99 95 great
2 Cavs 90 80 good
3 Spurs 84 87 bad
4 Nets 96 95 great

Przykład 2: Dodaj kolumnę liczbową na podstawie innych kolumn

Poniższy kod pokazuje, jak dodać nową kolumnę liczbową do ramki danych na podstawie wartości pozostałych kolumn:

 #create data frame
df <- data. frame (team=c('Mavs', 'Cavs', 'Spurs', 'Nets'),
                 scored=c(99, 90, 84, 96),
                 allowed=c(95, 80, 87, 95))

#view data frame
df

   team scored allowed
1 Mavs 99 95
2 Cavs 90 80
3 Spurs 84 87
4 Nets 96 95

#add 'lower_score' column based on values in 'scored' and 'allowed' columns
df$lower_score <- with (df, ifelse (scored > allowed, allowed, scored))

#view updated data frame
df

   team scored allowed lower_score
1 Mavs 99 95 95
2 Cavs 90 80 80
3 Spurs 84 87 84
4 Nets 96 95 95

Dodatkowe zasoby

Jak dodać kolumny do ramki danych w R
Jak dodać pustą kolumnę do ramki danych w R
Jak dodać kolumnę indeksu do ramki danych w R

Dodaj komentarz

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