R矢量化编程教程
答
要了解这一点,最好的方法是试验它,因为它是一个交互式环境,并且很容易创建虚拟数据。
至于使相邻行比较,以最简单的办法就是使用-
运营商(意为“排除该指数”),以消除在第一和最后一排,在这个例子中:
a <- 1:10
a[5] <- 0
a[-1] > a[-length(a)] # compare each row with the preceding value
如果你想要做一个if
语句,你有两个选择:
1)if
命令只计算一个值,所以你需要确保它的计算结果为TRUE/FALSE(如使用的全部或任何功能):
if(all(a[-1] > a[-length(a)])) {
print("each row is incrementing")
} else {
print(paste("the",which(c(FALSE, a[-1] <= a[-length(a)])),"th row isn't incrementing"))
}
2)您可以使用ifelse
函数做矢量化if语句。有关更多详细信息,请参阅help("ifelse")
。这里有一个例子:
ifelse(a[-1] > a[-length(a)], 1, 0)