继续收到错误"尝试应用非功能"使用if语句时

时间:2016-10-06 01:37:36

标签: r

从具有值P或F的列State的给定数据框中,我尝试创建另一个列State1,其值为1或0,具体取决于State是P还是F. 以下是我写的代码

for(i in 1:nrow(df)){
    if (df$State(i)==P) {df$State1(i)<- 1} 
    else {df$State1(i) <- 0}  
    }

但是我一直收到错误&#34;尝试应用非功能&#34;。我的代码看起来很简单,我不知道为什么我得到非函数错误。 请帮忙 谢谢 KS

2 个答案:

答案 0 :(得分:1)

您的语法不正确。应该是:

for(i in 1:nrow(df)){
    if (df$State[i]=="P") {df$State1[i] <- 1} 
    else {df$State1[i] <- 0}  
}

答案 1 :(得分:0)

Fridolin Linder提供了正确的语法。您也可以使用矢量化的ifelse函数使用更短的命令来执行此操作

df$State1 <- ifelse(df$State == "P", 1, 0)