我一直在尝试用while循环编写这个例子,如果是结构,但我没有设法做到这一点。我的synthax总是有问题。
如果x1> = x2 result = 1 否则结果= -1
x1 x2 result
5 7 -1
3 4 -1
7 2 1
如果有人设法得到正确的合成器,我会非常感激
答案 0 :(得分:0)
我喜欢使用dplyr
来解决这些问题。我们可以比使用循环
# make up some data
library(dplyr)
mydat <- data.frame(x = seq(1:10), y = rev(seq(10:1)))
#calculate result
new_data <- mutate(mydat, result = ifelse(x >= y, "1", "-1"))
答案 1 :(得分:0)
有几种方法可以得到你的答案,而且没有一种方法需要 while循环,因为矢量化解决方案必须始终是有趣的。我最喜欢的是:
result = (x1>=X2) -(x1<X2)
但是这种方法做了两次比较,因此效率不高。你可以使用它的数学等价物,即:
result = 2*(x1>=X2) - 1
但是如果你不想使用数学,那么另一种纯粹的R方式就是:
result = rep(1,length(x1))
result[x1<X2] = -1