R 条件循环执行但混乱



我正在尝试遍历所有数据,具体取决于 IF 语句,将创建一个新列。我没有收到错误,但结果完全关闭。 所以我很难找到错误。任何提示或建议都值得赞赏

```{r, echo=TRUE}
for (i in 1:length(Data)){
  if (Data$P[i]=="A")
  {
    Data$NC[i]=Data$C[i]*5
  }
  else if (Data$P[i]=="B")
  {
    Data$NC[i]=Data$C[i]*10
  }
  else if (Data$P[i]=='C')
  {
    DataNC[i]=Data$C[i]*15
  }
  else if (Data$P[i]=="D")
  {
    Data$NC[i]=Data$C[i]*20
  }

}

使用数据帧结构,像这样的乘法运算将通过 ifelse() 语句自动迭代,如下所示:

Data$NC <-  ifelse(Data$P == 'A', Data$C * 5, 
            ifelse(Data$P == 'B', Data$C * 10, 
            ifelse(Data$P == 'C', Data$C * 15, 
            ifelse(Data$P == 'D', Data$C * 20, 
            Data$NC))))

如果以前没有定义Data$NC,并且上面的ifelse()逻辑没有考虑所有可能的新NC值,那么您可以使用一些默认值来定义它,例如在运行此ifelse()语句之前Data$NC <- 0

最新更新