【问题标题】:If then else in dplyr packageIf then else 在 dplyr 包中
【发布时间】:2020-10-22 21:03:45
【问题描述】:

dplyr 中的“if then else”的逻辑是什么? 如果我想说,'如果x 大于y,则返回1'我会这样做。

newdf<- df %>% mutate(newvar = case_when(x > y ~ 1))

我想说,如果x 大于y,则返回1,否则返回0。 这个怎么写?

【问题讨论】:

  • 你不需要任何 if/else 或 case_when 即df %&gt;% mutate(newvar = as.integer(x &gt; y))

标签: r if-statement dplyr


【解决方案1】:

你也可以使用:

newdf = df %>% mutate(newvar = ifelse(x > y, 1, 0))

或者使用 case_when :

newdf = df %>% mutate(newvar = case_when(x > y ~ 1, x <= y ~0))
#or
newdf = df %>% mutate(newvar = case_when(x > y ~ 1, TRUE ~ 0))

case_when 中使用的 TRUE 条件是指在前面的条件中为 FALSE 的所有元素。

【讨论】:

  • 完全是tidyverse,你应该使用if_else
猜你喜欢
  • 1970-01-01
  • 2020-01-25
  • 2015-06-07
  • 1970-01-01
  • 2021-12-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-02
相关资源
最近更新 更多