【发布时间】:2018-06-02 20:58:24
【问题描述】:
我在 df 中有一个特征,其中一些缺失值显示为“”。
unique(page_my_df$Type)
[1] "list" "narrative" "how to" "news feature"
[5] "diary" "" "interview"
我想用“未知”替换所有“”实例。
page_my_df <- page_my_df %>%
mutate(Type = str_replace(.$Type, "", "unknown"),
Voice = str_replace(.$Voice, "", "unknown"))
mutate_impl(.data, dots) 中的错误:评估错误:未实现。
阅读一些文档here,特别是在模式下:
使用boundary() 匹配字符、单词、行和句子的边界。空模式“”等价于边界(“字符”)。
所以我尝试了:
page_my_df <- page_my_df %>%
mutate(Type = str_replace(.$Type, boundary(""), "unknown"),
Voice = str_replace(.$Voice, boundary(""), "unknown"))
然后给出:
mutate_impl(.data, dots) 中的错误: 评估错误:“arg”应该是“character”、“line_break”、“sentence”、“word”之一。
如何在 dplyr::mutate() 中将空字符串替换为“未知”?
【问题讨论】:
-
您可以改用 nchar() 进行测试。对于“”,其他所有不为 0
-
为什么不能使用
mutate(Type=ifelse(Type=="", NA, Type))甚至na_if(Type, "")