如果我在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语句,但只是不确定我如何组织它们......
谢谢!
答案 0 :(得分:3)
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"
希望有所帮助