带有逻辑和布尔运算符的循环的r if-else
我试图使用if-else语句在我的数据帧中创建一列新的二进制数据,但是我得到的是全零 命令:带有逻辑和布尔运算符的循环的r if-else,r,if-statement,R,If Statement,我试图使用if-else语句在我的数据帧中创建一列新的二进制数据,但是我得到的是全零 命令: for(i in 1:nrow(asort)){ if(asort$recip==0 && asort$dist<.74){ asort$temp[i]<-0 } else{ asort$temp[i]<-1 } } #temp ends up being all 0's for(i in 1:nrow(asort)){ 如果(asort
for(i in 1:nrow(asort)){
if(asort$recip==0 && asort$dist<.74){
asort$temp[i]<-0
} else{
asort$temp[i]<-1
}
}
#temp ends up being all 0's
for(i in 1:nrow(asort)){
如果(asort$recip==0&&asort$dist使用df
data.frame
dist <- runif(10, 0.3, 2)
recip<- c(0,1,1,0,1,0,1,0,0,1)
df <- data.frame(dist, recip)
您需要将计数器添加到布尔检查。例如,asort$recip
应该是asort$recip[i]
。我希望它能像那样简单-谢谢!将来,您应该提供一个可复制的示例。
dist <- runif(10, 0.3, 2)
recip<- c(0,1,1,0,1,0,1,0,0,1)
df <- data.frame(dist, recip)
df$temp<-ifelse(df$dist < 0.74 & df$recip == 0 , 0,
ifelse(df$dist > 1.85 & df$recip == 0, 0, 1))
> head(df)
# dist recip temp
#1 1.1878002 0 1
#2 0.4147835 1 1
#3 1.3707311 1 1
#4 0.9008034 0 1
#5 1.0220149 1 1
#6 1.9384069 0 0