【问题标题】:how to use ifTHEN statement如何使用 if THEN 语句
【发布时间】:2020-12-11 02:29:28
【问题描述】:

我是 R 新手,正在尝试做简单的 if/then 语句。使用dataframeDFnew,我想执行:

if "location2" is not missing then "Location" = "location2" 

我的代码:

library(dplyr)

test %>% DFnew %>%
  if(location2 != NA){
    Location <- location2
  } 

【问题讨论】:

  • 请包含必要的library() 语句以使此代码可重现;您的代码暗示您正在使用 dplyr,因为否则将数据框列引用为 'location2' ,Location 将要求您编写 DFnew['location']
  • 然后,你需要解释'location2','Location'是你的DF中的简单变量还是列名。想必是后者。在这种情况下,您希望向量化 if-then 表达式和赋值。

标签: r if-statement dplyr


【解决方案1】:

如果您使用的是dplyr,请使用矢量化函数ifelseif_else。要检查NA 值,请使用函数is.na

library(dplyr)

DFnew %>% mutate(Location = if_else(!is.na(location2), location2, Location))

coalesce 也可以实现同样的效果:

DFnew %>% mutate(Location = coalesce(location2, Location))

【讨论】:

    【解决方案2】:

    我们可以使用case_when

    library(dplyr)
    DFnew %>%
          mutate(Location = case_when(!is.na(location2) ~ location2, TRUE ~ location))
    

    【讨论】:

      猜你喜欢
      • 2022-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-13
      • 1970-01-01
      • 2022-06-10
      • 1970-01-01
      • 2023-01-13
      相关资源
      最近更新 更多