我在那里有一张表,其中有一些不同深度的观测值,如果观测值7为负值,我想用NA替换少量观测值,否则它应保持其值。例如,如果深度= 2的obs 7为负(例如-8),则用NA替换观察值1,2,7和9。否则什么都不做
worksheet <- some_data%>%
do_some_stuff%
mutate_at(vars(obs7,obs1,obs2,obs9), if_else(obs7<=0,NA, ??)
在这里,我们只需要改变'ob7'小于或等于0的列中的值。在这种情况下,'yes'部分将是NA
而'no'将是数据列本身。在tidyverse,它将被表示为.
,因为有一个~
library(tidyverse)
some_data %>%
mutate_at(vars(obs7, obs1, obs2, obs9), list(~ ifelse(ob7 <= 0, NA, .)))
注意:在这里,我们使用ifelse
而不是if_else
,因为if_else
特别关于类型检查,从问题来看,目前尚不清楚感兴趣的列的类型。如果列是整数,那么用NA
替换NA_integer_
,如果它是double,NA_real_
中的if_else