R用NA替换数据

时间:2019-04-18 16:07:04

标签: r replace

在这里,我有一张桌子,桌子上有一些不同深度的观察值,如果观察值7为负,我想用NA代替少量观察值,但否则应保留其值。 例如,如果深度= 2的obs 7为负数(例如-8),则将NA的观测值1,2,7和9替换为NA。否则什么都不做

worksheet <- some_data%>%
do_some_stuff%
mutate_at(vars(obs7,obs1,obs2,obs9), if_else(obs7<=0,NA, ??)

1 个答案:

答案 0 :(得分: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_,如果列为双数,则将NA_real_内的if_else