R 逻辑问题:较长的对象长度不是较短对象长度 ( dplyr::if_else() ) 的倍数



我不确定如何使用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在这里不是正确的功能。尝试使用findIntervalcut,这将找到您的data所在的正确threshold桶。

findInterval(data, threshold)

cut

cut(data, threshold)

如果要获取threshold索引,请将cutlabels = FALSE一起使用

cut(data, threshold, labels = FALSE)

相关内容

  • 没有找到相关文章

最新更新