如何从数据集中移除指定语句?已尝试gsub与str_remove_all无效
解决方法
你之前的代码失效核心原因是:正则表达式用的是英文翻译文本,但数据中要移除的是中文语句其他,请说明(如有多个请用逗号分隔):,两者完全不匹配,因此无法生效。
以下是两种可行的实现方式:
方法1:使用gsub()
直接用中文目标字符串作为匹配模式,同时处理两种场景:单独出现该语句,或者该语句和其他内容用逗号连接的情况(避免移除后残留多余逗号):
# 匹配目标字符串,同时处理前后可能的逗号和空格 datset$output <- gsub(",?其他,请说明(如有多个请用逗号分隔):,?", "", datset$output) # 移除后若出现空字符串,替换为NA(可选操作) datset$output[datset$output == ""] <- NA
方法2:使用stringr::str_remove_all()
同样用中文目标字符串,结合正则清理残留的逗号和空格:
library(stringr) # 移除目标字符串,同时清理残留的逗号 datset$output <- str_remove_all(datset$output, ",?其他,请说明(如有多个请用逗号分隔):,?") # 去除首尾空格并处理空字符串(可选操作) datset$output <- str_trim(datset$output) datset$output[datset$output == ""] <- NA
处理后效果
原数据集处理后会变为:
| output |
|---|
| 每个人都会哭泣/有情绪 |
| 家庭教养 |
| 每个人都会哭泣/有情绪 |
| 未说明 |
内容的提问来源于stack exchange,提问作者llb1706
相关产品推荐
相关产品推荐

