【发布时间】:2012-01-22 17:00:24
【问题描述】:
我现在才开始深入研究R 中的IF 语句。从我从CRAN documentation on IF statements 中看到的,看起来所有IF 语句都必须是nested。
这是真的吗?如果是,这个IF/THEN 结构更像EXCEL,而且我认为不像RUBY 或Python IF/THEN 逻辑那么简单。我没有打断这个正确吗?
在EXCEL(gui,而不是VBA)中,您必须运行这样的公式:
#IF Statement 1
=IF(A1<20, A1*1,
#IF Statement 2
IF(A1<50, A1*2,
#IF Statement 3
IF(A1<100, A1*3, A1*4)
#Closes IF Statement 2
)
#Closes IF Statement 1
)
Nested IF/THEN 很复杂,因为您必须确保正确关闭函数。
下一部分 - 我不是 100% 确定,因为我是这两种语言的初学者,但是...在 Ruby 或 Python,您可以在更多结构化方式:
IF
ELSE
END
这更加简单和明确。
我错过了在 R 中运行它的正确方法,还是有那么复杂?在 IF/THEN/Loop for R 上是否有我还没有找到的好资源?
谢谢
【问题讨论】:
-
作为旁注,对于您给出的示例,您最好完全避免使用
if语句,并使用x * as.numeric(cut(x, c(-Inf, 20, 50, 100, Inf)))之类的东西。 -
或(为了可读性和灵活性稍微重新排列)
categ <- cut(x,c(-Inf,20,50,100,Inf)); x <- x*(1:4)[categ]
标签: excel r if-statement nested