R 无法删除不相关的浮点值
数据集样本 通过此方法读入,除date.time之外的所有列都是数字 然而,当我查看maloo.RM.outlier的数据集时,没有值-99.9,所以我接着搜索R 无法删除不相关的浮点值,r,R,数据集样本 通过此方法读入,除date.time之外的所有列都是数字 然而,当我查看maloo.RM.outlier的数据集时,没有值-99.9,所以我接着搜索 which(maloo.RM.outlier$Hs == -99.9, arr.ind = T) [1] 11501 13775 我试着查看编号为11501和13775的行,其中没有-99.9个值。我已经尝试过了,清除全局环境数据,重新启动R会话,但似乎没有任何东西能够完全去除-99.9的值,而摘要仍然显示最小值=-99.9。有人知
which(maloo.RM.outlier$Hs == -99.9, arr.ind = T)
[1] 11501 13775
我试着查看编号为11501和13775的行,其中没有-99.9个值。我已经尝试过了,清除全局环境数据,重新启动R会话,但似乎没有任何东西能够完全去除-99.9的值,而摘要仍然显示最小值=-99.9。有人知道如何删除浮点值吗?因为,你不能真正测试浮点相等性,只是一个近似值。有几种方法可以做到这一点,但一种流行的(也是我最喜欢的)方法是减去我的限制/相等,然后寻找低于阈值的值
因为实际值可能在比较值的任一侧(pos/neg),所以我们可以使用绝对值来考虑这一点。生成的代码将更改您的
any(y == -99.9)
到
尽管它使用的是一种更为稳健的方法,通过使用.Machine$double.eps^0.5
,找到略高于“接近零”量级的东西
我选择了1e-9
作为code golf,不过如果你正在编程某个东西,你可能应该给它起个有意义的名字,这样它就不是一个“神奇常数”。也许是因为,你不能真正测试浮点等式,只是一个近似值。有几种方法可以做到这一点,但一种流行的(也是我最喜欢的)方法是减去我的限制/相等,然后寻找低于阈值的值
因为实际值可能在比较值的任一侧(pos/neg),所以我们可以使用绝对值来考虑这一点。生成的代码将更改您的
any(y == -99.9)
到
尽管它使用的是一种更为稳健的方法,通过使用.Machine$double.eps^0.5
,找到略高于“接近零”量级的东西
我选择了
1e-9
作为code golf,不过如果你正在编程某个东西,你可能应该给它起个有意义的名字,这样它就不是一个“神奇常数”。也许tol可能的重复:好的,浮点值,是有意义的,您能告诉我如何隔离行吗。例如,sum(maloo.RM.outlier$Hs<0)输出[2],但我甚至找不到这两个负值。any(abs(y+99.9)<1e-9)
应该找到它们。@tcratius我喜欢dplyr
包中的near
,而不是any(y=-99.9)
你可以做dplyr::near(y,-99.9)
@r2evans和Marius请尽可能回答,因为他们已经解决了我的问题。r2evans,你的答案使用apply函数效果更好,但是我可以在Marius的答案中看到值。可能的重复:好的,浮点值,是有意义的,你能告诉我如何隔离行吗。例如,sum(maloo.RM.outlier$Hs<0)输出[2],但我甚至找不到这两个负值。any(abs(y+99.9)<1e-9)
应该找到它们。@tcratius我喜欢dplyr
包中的near
,而不是any(y=-99.9)
你可以做dplyr::near(y,-99.9)
@r2evans和Marius请尽可能回答,因为他们已经解决了我的问题。r2evans,你的答案使用apply函数效果更好,但是我可以在Marius的答案中看到它的值。您好@r2evans,如果您想下载Maloolaba,请访问完整的Maloolaba示例数据集。我个人发现使用maloo.RM.outlier Hi@r2evans,如果您想下载Maloolaba,请访问完整的Maloolaba示例数据集。我个人发现使用maloo.RM.outlier
summary(maloo.RM.outlier)
Date.Time Hs Hmax
1/01/2018 1:00 : 1 Min. :-99.900 Min. :-99.900
1/01/2018 1:30 : 1 1st Qu.: 0.805 1st Qu.: 1.350
1/01/2018 10:00: 1 Median : 1.112 Median : 1.870
1/01/2018 10:30: 1 Mean : 1.234 Mean : 2.089
1/01/2018 11:00: 1 3rd Qu.: 1.608 3rd Qu.: 2.700
1/01/2018 11:30: 1 Max. : 4.257 Max. : 7.262
(Other) :14543
Tp Tz Peak.Direction SST
Min. :-99.900 Min. :-99.900 Min. : 5 Min. :19.80
1st Qu.: 7.529 1st Qu.: 5.035 1st Qu.: 91 1st Qu.:21.00
Median : 9.146 Median : 5.568 Median :105 Median :23.00
Mean : 9.245 Mean : 5.679 Mean :103 Mean :23.43
3rd Qu.: 10.903 3rd Qu.: 6.257 3rd Qu.:119 3rd Qu.:26.00
Max. : 21.121 Max. : 10.146 Max. :358 Max. :28.65
which(maloo.RM.outlier$Hs == -99.9, arr.ind = T)
[1] 11501 13775
any(y == -99.9)
any( abs(y + 99.9) < 1e-9 )