有这么个需求:我有许多列,我打算找到某一列等于某个值,同时另外一列中等于某个值,这样的多个条件筛选的行,并替换筛选出来的这些这些值,显然使用dplyr包是最好的选择,因为速度快的飞起,即使我的数据有几百万行
代码如下:
df.v %>% filter(to.x == 999, to.y==999) %>%
select(cnt,min ,max ,v_0.1,v_0.5,v_1) %>%
replace(values = -2)
这样就把符合条件(to.x == 999, to.y==999)的所有行都挑出来了,但是只select了目标列(cnt,min ,max ,v_0.1,v_0.5,v_1),这6列符合条件的值统一用replace函数替换为了-2值
df.v %>% filter(cnt == -1) %>%
select(cnt,min ,max ,v_0.1,v_0.5,v_1) * 0.9
上面的代码时筛选出符合条件的所有行,然后找到打算替换的部分列,直接数学运算,乘以固定数0.9,这样就对这些选择了的值直接计算完毕了。