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