【问题标题】:Using an IF statement in R [duplicate]在 R 中使用 IF 语句 [重复]
【发布时间】:2019-11-26 01:19:54
【问题描述】:

我是 R 新手。 我想做一些类似的事情:

如果 Survive="Y" 然后 Survive1=1 在我的名为“od”的数据框中 但是,我遇到了代码问题。这是我目前拥有的

od$Survive <- c(0)
if(od$Survive=="Y"){
  od$Survive1=1
}

我不断收到此警告:

警告信息: 在 if (od$Survive == "Y") { : 条件的长度 > 1,并且只使用第一个元素

【问题讨论】:

  • od$Survive1 &lt;- as.integer(od$Survive=="Y")
  • 不太清楚您要做什么。也许只使用逻辑子集:od$Survive1[od$Survive == "Y"] &lt;- 1,但您还应该查看ifelse() function 而不是if ... else construct
  • ifelse 用于向量,if 用于标量。

标签: r if-statement


【解决方案1】:

您看到的错误与 if 语句未向量化有关,因此 R 告诉您仅使用向量的第一个元素。尝试将ifelse 用于矢量化解决方案:

od$Survive1 <- ifelse(od$Survive == "Y", 1, 0)

您也可以只分配给布尔表达式:

od$Survive1 <- od$Survive == "Y"

【讨论】:

  • 这肯定是重复的吗?
猜你喜欢
  • 2013-05-06
  • 2018-06-29
  • 1970-01-01
  • 2021-03-16
  • 2018-07-06
  • 1970-01-01
  • 2023-03-04
  • 2020-09-09
  • 1970-01-01
相关资源
最近更新 更多