str_replace 模式是“”给出“mutate_impl(.data, dots) 中的错误:评估错误:未实现。”

Dou*_*Fir 4 r dplyr

我在 df 中有一个功能,其中一些缺失值仅显示为“”。

unique(page_my_df$Type)
[1] "list"              "narrative" "how to"            "news feature"     
[5] "diary"     ""                  "interview" 
Run Code Online (Sandbox Code Playgroud)

我想用“未知”替换“”的所有实例。

page_my_df <- page_my_df %>% 
  mutate(Type = str_replace(.$Type, "", "unknown"),
         Voice = str_replace(.$Voice, "", "unknown"))
Run Code Online (Sandbox Code Playgroud)

mutate_impl(.data, dots) 中的错误:评估错误:未实现。

在这里阅读一些文档,特别是在模式下:

使用boundary() 匹配字符、单词、行和句子边界。空模式 "" 等效于边界(“字符”)。

所以我试过:

page_my_df <- page_my_df %>% 
  mutate(Type = str_replace(.$Type, boundary(""), "unknown"),
         Voice = str_replace(.$Voice, boundary(""), "unknown"))
Run Code Online (Sandbox Code Playgroud)

然后给出:

mutate_impl(.data, dots) 中的错误:评估错误:“arg”应该是“character”、“line_break”、“sentence”、“word”之一。

如何在 dplyr::mutate() 中用“unknown”替换空字符串?

mis*_*use 5

这是一种方法:

library(tidyverse)
library(stringr)

z <- c( "list",  "narrative",  "how to",  "news feature",  
"diary",  "" , "interview" )

data.frame(element = 1:length(z), Type = z) %>%
  mutate(Type = str_replace(Type, "^$", "unknown"))
#output
  element         Type
1       1         list
2       2    narrative
3       3       how to
4       4 news feature
5       5        diary
6       6      unknown
7       7    interview
Run Code Online (Sandbox Code Playgroud)

也不需要在 mutate 调用中引用数据框 .$

^ 和美元符号 $ 是元字符,分别匹配行首和行尾的空字符串。