如果下面的数据表中给出的,我们愿与X2到X5因此比较X1时,可以使用下列:缩短嵌套ifelse
set.seed(1)
library(data.table)
TDT <- data.table(x1 = round(rnorm(100,0.75,0.3),2),
x2 = round(rnorm(100,0.75,0.3),2),
x3 = round(rnorm(100,0.75,0.3),2),
x4 = round(rnorm(100,0.75,0.3),2),
x5 = round(rnorm(100,0.75,0.3),2))
TDT[,compare := ifelse(x1 < x2,1,ifelse(x1 < x3,2,ifelse(x1 < x4,3,ifelse(x1 < x5,4,5))))]
所以,如果x1 < x2
,然后compare == 1
等
现在在我的例子中,我有更多的列来比较x1。有什么方法可以更简洁地编写,即没有嵌套ifelse?
在你的例子中,它给出了所有FALSE,请提供一个例子,给出所有可能性 – akrun
@akrun我编辑了这个例子。 – user3032689
谢谢,由于较早的数据,我无法正确测试它。更新帖子 – akrun