【问题标题】:If Else Statement and Removing NA'sIf Else 语句和删除 NA
【发布时间】:2015-01-08 15:14:28
【问题描述】:

我使用ifelse 语句告诉程序将月份分类为各自的季度。例如1-3月(I),4-6月(II)......等。我使用以下ifelse 声明:

eight$quarter<-ifelse(eight$month=="01", eight$quarter=="I", 0)

每当标题为“月”的列中存在“01”值时,出于某种原因,“季度”列中的值就会出现在 NA 上。其他一切都很好,因为值 02-12 为零。我很好奇我的编码哪里出错了,所以我可以删除 NA 并用相应的季度号替换它们。

【问题讨论】:

  • 是“01”文字,没有用错字母O吗?
  • 你分配了两次eight$quarter
  • 尝试阅读?ifelse文档
  • 问题是eight$quarter=="I" 总是返回FALSE。他用==代替=
  • 仅供参考,您可以避免使用ifelse 并执行c("0","I")[(eight$month=="01") + 1] 之类的操作。此外,如果您不关心只是获得10 的向量(而不是I0),您可以简单地执行(eight$month=="01") + 0

标签: r date if-statement


【解决方案1】:

你可以试试:

eight$quarter<-ifelse(eight$month=="01", "I", 0)

【讨论】:

  • 您可以通过使用eight$quarter&lt;-ifelse(eight$month %in% c("01","02","03), "I", 0) 等为每个季度减少一点代码。
猜你喜欢
  • 2023-03-20
  • 1970-01-01
  • 2021-12-25
  • 2014-11-11
  • 1970-01-01
  • 2014-02-15
  • 2019-04-09
相关资源
最近更新 更多