假设我的数据看起来像这样(有更多的列):
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))
但我希望有一种方法能够针对我的所有数据列进行此操作。
mutate_each
е·Іиў«ејғз”ЁпјҲеҸӮи§Ғпјҡhttps://dev59.com/questions/MKPia4cB1Zd3GeqPyGo2пјүпјҢеӣ жӯӨдҪҝз”Ёmutate_all
еҸҜд»ҘиҫҫеҲ°зӣёеҗҢзҡ„ж•ҲжһңгҖӮ - Frederickdplyr
的解决方案:df |> mutate_all(list(~ replace(., . < 0, NA)))
或者df |> mutate(across(everything(), ~ replace(., . < 0, NA)))
。如果您只想在特定列中进行替换,则后者更加灵活。 - cbrnr