gpt4 book ai didi

r - 检查数据帧行中是否至少有一个值大于给定的行特定阈值

转载 作者:行者123 更新时间:2023-12-04 22:04:15 24 4
gpt4 key购买 nike

这是我正在处理的数据集的可重复小示例:

set.seed(123)
dat <- as.data.frame( cbind(a=1+round(runif(5), 2), b=round(rnorm(5), 2), high_cutoff=round(1+rnorm(5), 1)) )

数据框是:
     a     b   high_cutoff
1.29 -1.69 2.3
1.79 1.24 -0.7
1.41 -0.11 2.7
1.88 -0.12 1.5
1.94 0.18 3.5

我正在尝试按行检查前两列中是否至少有一个值高于第三列中的 correpondig 阈值
(假设两个值中的任何一个值高于截止值,我想存储一个 1)。

在示例中,我期望找到的是:
   higher_than_cutoff         
0
1
0
1
0

我一直在尝试使用以下(错误的)代码以及它的一些变体,但没有取得多大成功:
higher_than_cutoff <- apply( dat[, c("a", "b")], 1, function(x) any(x > dat[, "high_cutoff"]) )

您能否就如何继续提供一些建议?
任何帮助都受到高度赞赏

最佳答案

这是一个可能的矢量化解决方案(如果您只使用 TRUE/FALSE,则可以在开头删除 +)

+(rowSums(dat[-3L] > dat[, 3L]) > 0)
## [1] 0 1 0 1 0

如果你坚持 apply ,你可以做类似的事情
apply(dat, 1, function(x) +(any(x[-3] > x[3])))
## [1] 0 1 0 1 0

关于r - 检查数据帧行中是否至少有一个值大于给定的行特定阈值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31160618/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com