【发布时间】:2021-07-03 12:08:52
【问题描述】:
我有一个包含 56 列的数据框。我需要在 50 列中用 NA 替换值,条件是“正 == 0”列的值。
我已经弄清楚如何使用 mutate 有条件地替换单个列中的值。我现在已经花了相当长的时间来弄清楚如何将此 mutate 函数应用于其他列,而不必重复该命令 50 次 - 无济于事。
必须有一个简单的解决方案。 ;) 有人可以帮忙吗?
这是数据的结构:
df <- data.frame(positive = c(1,1,0,0,1),
a = c("x","x","x","y","y"),
b = c("z","z","z","y","z"),
d = c(1,2,3,4,5))
这是我替换一列中的值的解决方案。
df <- df %>%
mutate(a = replace(a, positive == 0, NA))
【问题讨论】:
-
你试过mutate(across())吗?
-
我在寻找解决方案时遇到过。 :) 但是我的编码技能太差了,无法将其应用于这个问题。此外,我不需要重新编码所有 56 列。只需约 50 个条件需要重新编码。