R条件循环执行但是变得混乱

时间:2018-03-07 17:44:48

标签: r loops for-loop if-statement

我正在尝试迭代所有数据,具体取决于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
  }

}

1 个答案:

答案 0 :(得分:0)

使用数据帧结构,这些乘法运算将通过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的所有可能新值,则您可以使用某些默认值定义它,例如{{ 1}}在运行此Data$NC <- 0语句之前