【问题标题】:R - Change value in one column based on NA value in another columnR - 根据另一列中的 NA 值更改一列中的值
【发布时间】:2018-02-01 16:19:18
【问题描述】:

我正在研究一个包含用户教育信息的数据集。

我想根据 Var1 中的 NA 值将 Freq 列中的值更改为“0”。所以如果 Var1 = NA,那么 Freq = 0。

对于我的生活,我无法弄清楚,需要一些帮助。

你们中有人知道如何处理这个问题吗?

【问题讨论】:

  • 如果您可以提供一些示例数据,帮助您的人总是会更轻松。同时,查看dplyr 库和其中的mutate() 函数以及ifelse() 语句。
  • 请不要发布图片来澄清您的问题,而不是发布“真实”代码。问题的质量对于我们帮助您和其他用户在这篇文章中找到他们的答案很重要。 stackoverflow.com/help
  • Freq[is.na(Var1)] <- 0 应该可以工作。您无法使用 ==NA 评估缺失。

标签: r if-statement transform


【解决方案1】:

两种解决方案:

library(dplyr)

#Some data
dat <- 
  data.frame(var1 = sample(c(1:3, rep(NA, 5)), 10, TRUE), 
             var2 = rnorm(10), 
             freq = rnorm(10, 100))

#The "dplyr" way
dat %>%
  mutate(freq = ifelse(is.na(var1), 0, freq))

#subset/replace from AdamO
dat$freq[is.na(dat$var1)] <- 0

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-25
    • 1970-01-01
    • 1970-01-01
    • 2021-11-24
    • 1970-01-01
    • 2021-09-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多