【问题标题】:How to use ifelse to replace the values in a column with values in another column in a dataframe in R?如何使用 ifelse 将列中的值替换为 R 中数据框中另一列中的值?
【发布时间】:2022-10-14 06:17:13
【问题描述】:

例如,我在 dplyr 中使用 full_join() 合并了两个数据帧,如下所示:

df_1 <- data.frame(id = c(1,2,3,4,5), x = c('a', 'b', 'c', 'd', 'e'))
df_2 <- data.frame(id = c(2,4,5,6,7,8), y = c('f', 'g', 'h', 'i', 'j', 'k'))

df <- full_join(df_2, df_1, by = 'id') 

我想使用 ifelse() 来执行以下操作:

  • 对于每一行,检查x列是否有缺失值
  • 如果是,请在 y 列中输入“否”
  • 如果否,将x的值输入到y列

我试过这段代码:

df$y <- ifelse(is.null(x), "NO", x)

但结果不是我想要的:

我做错了什么?你能提供一些关于修复代码的建议吗?

十分感谢。

【问题讨论】:

    标签: r dataframe if-statement


    【解决方案1】:

    以下将做你想要的:

    df$y <- ifelse(is.na(df$x), "NO", df$x)
    

    问题似乎是is.null(),应该使用is.na()

    【讨论】:

      猜你喜欢
      • 2019-12-20
      • 1970-01-01
      • 2019-04-03
      • 1970-01-01
      • 2016-01-03
      • 1970-01-01
      • 2020-03-11
      • 2020-09-01
      相关资源
      最近更新 更多