【问题标题】:How to add new column conditional to NA in one column of data如何在一列数据中以 NA 为条件添加新列
【发布时间】:2022-09-26 16:00:26
【问题描述】:

我一直在尝试在数据集中创建一个新列,比如说 jk。如果 a6b 列中的值为 NA,我希望在此列中显示 a6 列中的值,否则我需要 a6b 列中的值。我为此操作编写了以下代码行:

Combined_Data %>% mutate(jk=if_else(a6b!= NA , a6b, a6))

但是,如果预期结果,此代码会将 jk 列中的所有值转换为 NA。

我有的:

df
  a6 a6b
1 45  NA
2 62  32
3 NA  55
4 92 200

我想要的是:

df
  a6 a6b  jk
1 45  NA  45
2 62  32  32
3 NA  55  55
4 92 200 200

我得到了什么:

df
  a6 a6b  jk
1 45  NA  NA
2 62  32  NA
3 NA  55  NA
4 92 200  NA
  • 有人可以编辑我的问题并使表格整洁吗?不明白我做错了什么

标签: r mutate


【解决方案1】:

以这种方式使用 ifelse:条件,如果为真,则为值,如果为假,则为值:

jk = ifelse(is.na(a6b), a6, a6b)

【讨论】:

  • 但你能解释一下我的代码有什么问题吗?因为我也想说同样的话,如果 a6b 不是 NA 取值 a6b 否则 a6
【解决方案2】:
df %>%
  mutate(jk=if_else(!is.na(a6b), a6b, a6))

NA,理解为缺失值, 必须与功能is.na。如果值为细绳NA,分别是不是缺少值但字符串。由于您在两个原始列中的观察都不是这样的字符串,因此 ifelse 命令显然并且正确地在整个过程中返回 NA

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-11
    • 1970-01-01
    • 1970-01-01
    • 2020-03-12
    • 2015-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多