我在使用多个 if 语句时遇到问题。即使条件不正确,输出始终取自第一个条件。任何人都可以指出我做错了什么吗?
code:
for(i in 1:length(data_model3$Gewicht)){
if (data_model3$Gewicht[i] < 1){
data_model3$LIXshipping <- 3.26
}
else if (data_model3$Gewicht[i] > 1 & data_model3$Gewicht[i] < 2){
data_model3$LIXshipping <- 3.26
}
else if (data_model3$Gewicht[i] > 2 & data_model3$Gewicht[i] < 3){
data_model3$LIXshipping <- 3.86
}
else if (data_model3$Gewicht[i] > 3 & data_model3$Gewicht[i] < 4){
data_model3$LIXshipping <- 3.86
}
else if (data_model3$Gewicht[i] > 4 & data_model3$Gewicht[i] < 5){
data_model3$LIXshipping <- 3.86
}
else if (data_model3$Gewicht[i] > 5 & data_model3$Gewicht[i] < 10){
data_model3$LIXshipping <- 4.39
}
else if (data_model3$Gewicht[i] > 10 & data_model3$Gewicht[i] < 20){
data_model3$LIXshipping <- 4.81
}
else if (data_model3$Gewicht[i] > 20 & data_model3$Gewicht[i] < 31.5){
data_model3$LIXshipping <- 6.34
}
else
data_model3$LIXshipping <- 17.09
}
output:
count_code Gewicht LIXshipping
281 4.67 3.26
683 3.34 3.26
903 14.56 3.26
7390 14.62 3.26
2778 2.86 3.26
2778 10.37 3.26
对于你们中的一些人来说,这可能是一个完全基本的问题,但我不知道如何解决它。
这可以通过一行完成(+ 一行数据):
data_model3 <- data.frame(Gewicht=1:40)
data_model3$LIXshipping <- as.numeric(as.character(cut(data_model3$Gewicht, breaks=c(0,2,5,10,20,31.5, 100), labels=c(3.26, 3.86, 4.39, 4.81, 6.34, 17.09), right=FALSE)))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)