【发布时间】:2016-01-02 11:23:16
【问题描述】:
我有如下数据。我想要一个名为accuracy_level 的新专栏。我怎样才能完成它?我试过if,但效果不佳。
如果
-
accuracy_percentage在 +/-10% 以内,那么accuracy_level将是“良好” -
accuracy_percentage在 +/-30% 以内,在 +/-10% 以内,那么accuracy_level将是“坏” -
accuracy_percentage超出 +/-30%,那么accuracy_level将是“最差”
这是我的代码:
actuals=seq(0,10,0.1)
forecast=seq(10,0,-0.1)
data1=data.frame(actuals,forecast)
data1$diff=data1$actuals-data1$forecast
data1$accuracy_percentage=(data1$diff/data1$actuals)*100
if((data1$accuracy_percentage < 10)&(data1$accuracy_percentage > -10),data1$accuracy_level="good",)
【问题讨论】:
-
您可以使用
ifelse代替if/else或者更好的是使用cut并指定labels -
df 的第一行有一个
inf值。0.0 10.0 -10.0 -Inf -
最佳实践是使用空格,以便您和其他人可以阅读您的代码,并且您在尝试测试
x < -1时不会意外地使用x<-1
标签: r if-statement dataframe conditional