Как мне изменить значение в Tibble на другое значение в том же Tibble? - PullRequest
0 голосов
/ 20 апреля 2020

Я хотел бы сослаться на другое значение в том же столбце и преобразовать мое первоначальное значение в это. Например, если у меня есть тиббл,

tibble(x = 200:203, y = c("a","b","c", "d"), z = c(NA, 202,201,NA))

Я хотел бы получить tibble(x = 200:203, y = c("a","b","c", "d"), z = c(NA, "c","b",NA))

в результате.

Я пытался mutate(tbl,z, ifelse(!is.na(z), tbl[[which(fixed_messages$id == z),2]], NA)), но это не не работает.

Кроме того, как я могу вставить tibble в вопрос переполнения стека?

Ответы [ 2 ]

0 голосов
/ 20 апреля 2020

Мы можем left_join столбик с самим собой и select столбцами, которые нам нужны.

library(dplyr)

left_join(df, df, by = c('x' = 'z')) %>% select(x, y = y.x, z = y.y)

# A tibble: 4 x 3
#     x   y     z    
#  <dbl> <chr> <chr>
#1   200 a     NA   
#2   201 b     c    
#3   202 c     b    
#4   203 d     NA   
0 голосов
/ 20 апреля 2020

Вы можете сделать:

tbl %>%
 mutate(z = y[match(z, x)])

      x y     z    
  <int> <chr> <chr>
1   200 a     <NA> 
2   201 b     c    
3   202 c     b    
4   203 d     <NA> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...