Как пользоваться !! в сочетании с replace_na в R - PullRequest
0 голосов
/ 11 марта 2020

Рассмотрим

b<-data.frame(s=c(1,4),v=c(3,5))
g<-"f"
b<-b %>% mutate(!!g:=NA)
b
  s v  f
1 1 3 NA
2 4 5 NA

Теперь я хочу заменить NA в третьем столбце на 0 через переменную, которая содержит имя столбца третьего столбца. Итак, я сделал

> b %>% replace_na(b$(!!g),0)
Error: unexpected '(' in "b %>% replace_na(b$("

Как заменить содержимое третьего столбца с помощью переменной (в данном примере это переменная g), которая содержит имя столбца третьего столбца?

1 Ответ

1 голос
/ 11 марта 2020

Используйте replace_na() внутри mutate(), чтобы просто изменить свой единственный вектор.

library(dplyr)
library(tidyr)

b <- data.frame(s=c(1,4),v=c(3,5))
g <- "f"

b %>% 
  mutate({{g}} := NA) %>% 
  mutate({{g}} := replace_na(!!sym(g), 0))
#>   s v f
#> 1 1 3 0
#> 2 4 5 0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...