我想在我的R数据帧上应用过滤器。 我想选择值满足下一个条件的行:2 ^ n =整数值 例。这是我的数据框
pais entidad time_cases v_doublingTimes
Mex Mexico 0 1
Mex Mexico 1 1.1892
Mex Mexico 2 1.4142
Mex Mexico 3 1.68
Mex Mexico 4 2
Mex Mexico 5 2.37
Mex Mexico 6 2.828427
Mex Mexico 6 3.34
Mex Mexico 6 4
...
如您所见,我只想保留其值为整数的行。 我只是想要v_doublingTimes中的值等于1、2和4的行。 我尝试过:
df$v_doublingTimes %% 1
要知道我是否有整数值,如果得到1则我知道是整数值,但我不知道为什么这不起作用。行v_doublingTimes
的值类型为float。还有其他方法可以过滤数据框并仅将行保留在2 ^ n处吗?
n = 0、1、2、3 ...直到我的df长度。
答案 0 :(得分:0)
df$v_doublingTimes %% 1
除以1后得到余数
df$v_doublingTimes %% 1
#[1] 0.000 0.189 0.414 0.680 0.000 0.370 0.828 0.340 0.000
您只需选择余数为0的行,即可:
subset(df, v_doublingTimes %% 1 == 0)
# pais entidad time_cases v_doublingTimes
#1 Mex Mexico 0 1
#5 Mex Mexico 4 2
#9 Mex Mexico 6 4
做同一件事的其他方式:
df[df$v_doublingTimes %% 1 == 0, ]
dplyr::filter(df, v_doublingTimes %% 1 == 0)