Заменить значение в dataframe безоговорочно с dplyr - PullRequest
0 голосов
/ 05 декабря 2018

Что такое функция dplyr (если есть) для df[df == 2] <- 3?

(то есть заменить все значения 2 в кадре данных df на 3)

на dplyr Я мог бы сделать это как:

df %>% mutate_all(funs(ifelse(.==2, 3, .)))

Есть ли такая функция, как recode_all(df, old_value=2, new_value=3)?

Ответы [ 3 ]

0 голосов
/ 05 декабря 2018

Это может сработать:

df %>% mutate_all(funs(case_when(.==2 ~ 3, TRUE ~ as.numeric(.))))

(не уверен, почему он хочет, чтобы я изменил его на числовое, но просто вставка . в конце выдает ошибку ...)

0 голосов
/ 05 декабря 2018

Мы также можем использовать replace

library(dplyr)
df %>% 
   replace(.< 22, "smaller_22")
0 голосов
/ 05 декабря 2018

это, на мой взгляд, неплохо:

df1 <- mtcars[1:4,1:4]
df1 %>% `[<-`(., . < 22, value = "smaller_22")

так что в вашем особом случае:

df %>% `[<-`(., . == 2, value = 3)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...