空气质量指数计算

时间:2014-05-30 20:17:22

标签: r excel if-statement

如果我在Excel中有声明,如:

=IF(AND(Q1>=0,Q1<=12), 50/12*(Q1-0)+0, IF(AND(Q1>=12.1,Q1<=35.4),(100-51)/(35.4-12.1)*(Q1-12.1)+51, IF(AND(Q1>=35.5, Q1<=55.4), (150-101)/(55.4-35.5)*(Q1-35.5)+101, IF(AND(Q1>=55.5,Q1<=150.4), (200-151)/(150.4-55.5)*(Q1-55.5)+151,"NA" ))))

&#34; Q1&#34;是Q列第1行中的单元格。我的问题是,如何将语句从Excel翻译为R?我想我应该在R中使用多个IF ELSE语句,但只是不确定我如何组织它们......

谢谢!

1 个答案:

答案 0 :(得分:3)

R中的

IF可以是R中的ifelse。参数相同 - 通过键入?ifelse查看帮助文件 excel中的AND转换为R中语句之间的& - 请参阅here

#Assume your data is called Q
result = ifelse((Q>=0 & Q<=12), 50/12*(Q-0)+0, ifelse((Q>=12.1 & Q<=35.4),(100-51)/(35.4-12.1)*(Q-12.1)+51, ifelse((Q>=35.5 & Q<=55.4), (150-101)/(55.4-35.5)*(Q-35.5)+101, ifelse((Q>=55.5 & Q<=150.4), (200-151)/(150.4-55.5)*(Q-55.5)+151,"NA" ))))

测试这个,我们有:

  

Q = c(1,2,3,100,150,60)

> result
[1] "4.16666666666667" "8.33333333333333" "12.5"             "173.976817702845" "199.793466807165" "153.323498419389"

希望有所帮助