gpt4 book ai didi

r - dplyr 过滤器中的标量比较

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

在以下可重现的示例中,我想过滤 df 中变量表达式给出特定结果的行。第 1 行和第 3 行符合要求,应返回。但是我的第一次尝试是不正确的,因为我使用了 ==用于比较标量。

df <- data.frame(matrix(c(1,8,3,7,4,5,6,2,9,1,2,3,4,5,6,7,8,9,9,6,4,3,5,8,1,7,2),ncol=9,byrow=T))

df %>%
filter(X1+13*X2/X3+X4+12*X5-X6-11+X7*X8/X9-10==66)

X1 X2 X3 X4 X5 X6 X7 X8 X9
1 9 6 4 3 5 8 1 7 2

我试图使用 isTRUE(all.equal(...)) 方法纠正我的错误,但令我惊讶的是,我根本没有得到任何结果。
df %>%
filter(isTRUE(all.equal(X1+13*X2/X3+X4+12*X5-X6-11+X7*X8/X9-10,66)))

[1] X1 X2 X3 X4 X5 X6 X7 X8 X9
<0 rows> (or 0-length row.names)

我应该如何进行这种比较?

最佳答案

all.equal未矢量化 - 为什么不

df %>% 
filter(abs(X1+13*X2/X3+X4+12*X5-X6-11+X7*X8/X9-10 - 66) < 1e-8)

关于r - dplyr 过滤器中的标量比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30373005/

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