【发布时间】:2021-12-22 07:22:28
【问题描述】:
如果在当前值 f.e. 中找到特定字符,我想将特定行中的值替换为 NA如果一个值包含“
例子:
Column A: 3, 4, 8, <5.6, 1, 3
Column B: 7, 4, <6, 1, <2.2, 8
应转换为:
Column A: 3, 4, 8, NA, 1, 3
Column B: 7, 4, NA, 1, NA, 8
我在这里 (https://dplyr.tidyverse.org/reference/na_if.html) 找到了这个带有 mutate 和 na_if() 的示例,但它需要匹配整个字符串 f.e.
y <- c("abc", "def", "", "ghi")
na_if(y, "def")
所以“def”将被 NA 替换。但是如果我使用
y <- c("abc", "def", "", "ghi")
na_if(y, "ef")
什么都没有被替换。还有一个例子与
library(dplyr)
data <- starwars
data %>%
select(name, eye_color) %>%
mutate(name = na_if(name, "Luke Skywalker")) %>%
mutate(eye_color = na_if(eye_color, "unknown")) -> dataedited
这段代码非常适合我,但也需要完全匹配而不是字符串的一部分。 这样我可以手动编辑每一列,也许有一种方法可以跨多列执行此操作。如果 name 包含“sky”或 eye 包含“unkn”,我想将值转换为 NA。
谁能帮帮我?
谢谢!
【问题讨论】: