gpt4 book ai didi

R 如何将 which() 与浮点值一起使用?

转载 作者:行者123 更新时间:2023-12-05 00:50:53 25 4
gpt4 key购买 nike

我遇到了与 R which () function returns integer(0) 中描述的相同的问题

price = seq(4,7, by=0.0025)
allPrices = as.data.frame(price)
lookupPrice = 5.0600
which(allPrices$price == lookupPrice)
which()语句输出 integer(0) ,表示不匹配。它应该输出 425,即该序列中匹配的行号。

我知道这是一个浮点问题。该链接建议使用 all.equal(x,y)以某种方式。

我如何合并 all.equal()函数入 which()语句,以便我获得 allPrices 中的行号匹配 lookupPrice (在这种情况下,5.06)?

还有其他方法吗?我需要行号,因为该价格的其他列中的值将被修改。

最佳答案

手动方法涉及指定比较的容差并执行:

# tol = 1e-7: comparison will be TRUE if numbers are equal up to 
# 7 decimal places
tol = 1e-7
which(abs(allPrices$price - lookupPrice) < tol)

关于R 如何将 which() 与浮点值一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45206286/

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