R用NA替换数据

问题描述 投票:2回答:1

我在那里有一张表,其中有一些不同深度的观测值,如果观测值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, ??)
r replace
1个回答
4
投票

在这里,我们只需要改变'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

© www.soinside.com 2019 - 2024. All rights reserved.