for (x in 1:t) { t$wind_pei[x] <- if(t$speed[x]<32.7){ 0 }else if(t$speed[x]<=36.9){ 20 }else if(t$speed[x]<=41.4){ 40 }else if(t$speed[x]<=46.1){ 70 }else if(t$speed[x]<=50.9){ 100 }else if(t$speed[x]<=56.0){ 150 }else{ 200 } }这段代码有什么问题
时间: 2023-06-18 18:01:56 浏览: 146
这段代码没有问题,但是可以进一步优化。可以使用cut()函数将速度分段,然后使用case_when()函数进行条件判断,这样代码会更简洁易懂。示例代码如下:
```
t$wind_pei <- cut(t$speed,
breaks = c(-Inf, 32.7, 36.9, 41.4, 46.1, 50.9, 56.0, Inf),
labels = c(0, 20, 40, 70, 100, 150, 200))
t$wind_pei <- as.integer(t$wind_pei)
```
以上代码将速度分为7个区间,对应的风力等级分别为0、20、40、70、100、150和200。使用as.integer()函数将风力等级转为整数型。
阅读全文