cod*_*ing 1 validation r filter dataframe data-science
我想知道是否有一种有效的方法可以知道我的数据框中列的哪些值是 2 的幂。我的数据是一个有 6 列的数据框,其中一列的值是我想要检查的数字是否为 2 的幂。
class(df$doubling_times) > numeric
log2(x) %% 1 == 0
- 检查数字的对数基数 2 是否为整数(除以 1 时,余数是否为 0?)
> x = 1:10
> data.frame(x, power2 = log2(x) %% 1 == 0)
x power2
1 1 TRUE
2 2 TRUE
3 3 FALSE
4 4 TRUE
5 5 FALSE
6 6 FALSE
7 7 FALSE
8 8 TRUE
9 9 FALSE
10 10 FALSE
Run Code Online (Sandbox Code Playgroud)
以上应该可行,但更安全的方法将允许浮点精度问题,并且可能是这样的:
remainder = log2(x) %% 1
tol = 1e-12 # tolerance
power2 = abs(remainder - round(remainder)) < tol
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
61 次 |
最近记录: |