我不确定如何使用if_else()
以外的其他方法修改我的代码并保持其效率。这是我原始代码的简单示例:
library(dplyr)
# The goal is to know between which threshold belongs each record
data <- c(runif(99999), NA)
threshold <- seq(0, 1, by=0.1)
rank <- if_else(is.na(data), NA, max(which(data >= threshold))) # Error: longer object length is not a multiple of shorter object length
谢谢
我认为if_else
在这里不是正确的功能。尝试使用findInterval
或cut
,这将找到您的data
所在的正确threshold
桶。
findInterval(data, threshold)
与cut
cut(data, threshold)
如果要获取threshold
索引,请将cut
与labels = FALSE
一起使用
cut(data, threshold, labels = FALSE)