R测试数据帧中的double是否为零
如果double是“零”,我如何才能最好地测试(并选择)。如果您尝试过这一点:R测试数据帧中的double是否为零,r,R,如果double是“零”,我如何才能最好地测试(并选择)。如果您尝试过这一点: summary(df.1[weights==0,1]) Min. 1st Qu. Median Mean 3rd Qu. Max. NA's -100880.000 0.000 0.000 1.179 0.000 90993.000 17597 但由于结果不是零——一定是出了
summary(df.1[weights==0,1])
Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
-100880.000 0.000 0.000 1.179 0.000 90993.000 17597
但由于结果不是零——一定是出了什么问题
编辑1
我已确保colname是正确的,但仍会出现相同的错误:
head(df.1)
weights
1 0.00000
2 -57.09428
3 0.00000
4 0.00000
summary(df.1[weights==0,1])
Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
-100880.000 0.000 0.000 1.179 0.000 90993.000 17597
如果要检查某物(例如
x
)是否为零:
isTRUE(all.equal(x, 0))
但这并不能以我们所期望的方式真正地处理向量。因此,让我们合并:
如果要检查某物(例如
x
)是否为零:
isTRUE(all.equal(x, 0))
但这并不能以我们所期望的方式真正地处理向量。因此,让我们合并:
您正在测试全局环境中名为
权重的向量元素是否为零,并使用它对data.frame的第一列进行子集划分。此向量与第一列相同吗?@ManInMoon现在尝试summary(df.1[df.1$weights==0,1])
或with(df.1,summary(weights[weights==0])
…您确定不会遇到机器舍入吗?也就是说,关于浮点二进制表示的常见FAQ,以及测试abs(x)<.Machine.eps^2
而不是零的建议。除了上面给出的解决方案摘要(子集(df.1,权重==0)[,1])
也应该起作用。您正在测试全局环境中名为权重的向量元素是否为零,并使用它对data.frame的第一列进行子集设置。此向量与第一列相同吗?@ManInMoon现在尝试summary(df.1[df.1$weights==0,1])
或with(df.1,summary(weights[weights==0])
…您确定不会遇到机器舍入吗?也就是说,关于浮点数二进制表示的常见问题解答,以及测试abs(x)<.Machine.eps^2
而不是零的建议。除了上面给出的解决方案之外摘要(子集(df.1,权重==0)[,1])
也应该有效。
subset(df.1, AlmostEqual(df.1$weights, 0))