用所有列替换NA的负值?

时间:2016-11-21 15:50:05

标签: r dplyr

假设我的数据看起来像这样(包含更多列)

set.seed(112116)
df <- data.frame(x1 = sample(c(LETTERS, -1:-10), 100, replace = T),
                 x2 = sample(c(letters, -1:-10), 100, replace = T),
                 x3 = sample(c(1:30, -1:-10), 100, replace = T))

我想用NA替换所有负数。我可以像这样一个接一个地做:

df <- df %>% mutate(x1 = replace(x1, which(x1<0), NA),
              x2 = replace(x2, which(x2<0), NA),
              x3 = replace(x3, which(x3<0), NA))

但我希望有一种方法可以为我的数据中的所有列执行此操作

1 个答案:

答案 0 :(得分:7)

尝试使用mutate_each

df %>% 
    mutate_each(funs(replace(., .<0, NA)))