使用mutate和case_when时,从现有列中插入值

时间:2019-04-23 10:33:46

标签: r dataframe dplyr

当要满足x列中的条件时,我想向z数据帧添加一个具有相应“ y”值的ds列。

library(tidyverse)
ds <- tibble(x = 1:5,y = 6:10)

ds%>%
  mutate(
    z = case_when(
      x == 3 ~ y,
      TRUE ~ NA_character_
    )
  )

我希望y列中的对应值位于z列中,但是如何正确地引用y列?

1 个答案:

答案 0 :(得分:1)

这是您要寻找的吗?

ds%>%
  mutate(
    z = case_when(
      x == 3 ~ y,
      TRUE ~ NA_integer_
    )
  )
# A tibble: 5 x 3
      x     y     z
  <int> <int> <int>
1     1     6    NA
2     2     7    NA
3     3     8     8
4     4     9    NA
5     5    10    NA