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