【问题标题】:Transforming only part of the NA's of a variable in 0仅将变量的部分 NA 转换为 0
【发布时间】:2018-01-19 14:35:54
【问题描述】:

我在 RStudio 的数据框中工作,试图了解锻炼与人的总体健康状况之间是否存在相关性。有三个主要变量:

exerof1:此变量与研究人员在过去 30 天内锻炼的次数有关。

exerany2:在这个变量中,如果参与者在上个月练习了练习,他们会回答,因此他们可以说是,否或拒绝回答。

genhlth:一个因子变量,将观察分为 5 个级别。

我已经转换了 exeroft1 变量,但是这个变量的 30% 是 NA,其中大多数是 NA,因为他们在“exerany2”问题中回答“否”。

我的目标是识别在“exerany”变量中说“否”并在 exerof1 中列为“NAs”的人,以将这些“NAs”转换为 0。

我不知道我的分析是否是最好的方法,因为我是初学者。我尝试使用 ifelse 做我想做的事,但我很挣扎。我也尝试检查是否有另一个线程具有相同的问题,但我找不到。

我会等待您的反馈。

【问题讨论】:

  • 欢迎来到 SO!请阅读How to Askminimal reproducible example ... 然后编辑您的问题!到目前为止您尝试了什么?
  • 由于您的问题更多的是关于哪种分析而不是如何对其进行编程,因此它可能更适合获得一些统计建议。我已投票将 ot 移至stats.stackexchange.com/questions
  • @user20650 我相信在R 中执行NA 插补的部分内容进入stackoverflow.com。还有一些关于何时将NA0 归类的疑问,我想说这非常依赖于上下文,不确定这是否是一个统计问题。

标签: r dplyr


【解决方案1】:

假设你的数据框被称为data:

data[(is.na(data$exerof1) & data$exerany2=="No"),"exerof1"] <- 0 

基本上我们选择满足您条件的行,然后选择列exerof1,并为它们分配值0

【讨论】:

  • 感谢各位的帮助。我对代码进行了一些更改,以便能够与 dplyr 库一起使用,因此,我能够达到我的目标。另外,我想强调一下,我会更多地研究如何做一个正确的问题,以免再次犯同样的错误。
猜你喜欢
  • 1970-01-01
  • 2021-10-15
  • 1970-01-01
  • 1970-01-01
  • 2019-05-30
  • 2023-01-27
  • 2015-05-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多