首页 > 解决方案 > 如何在其他语言中使用 grep 删除单词?

问题描述

我尝试从使用grep希腊语的数据框中删除字符串。

df <- data.frame(freetext = c("Εδώ και αρκετό καιρό που συνεχίζουν","και τώρα που έγιναν"))

df <- df_text[!grepl("και|που", df),]

错误是

Error in `$<-.data.frame`(`*tmp*`, text, value = character(0)) : 
  replacement has 0 rows, data has 2

语言有问题吗?

预期数据框:

df <- data.frame(freetext = c("Εδώ αρκετό καιρό συνεχίζουν","τώρα έγιναν"))

标签: rregex

解决方案


语言没有问题,但还有其他几个问题。你要

df$freetext <- gsub("(και|που)[$ ]", "", df$freetext)
df
#                      freetext
# 1 Εδώ αρκετό καιρό συνεχίζουν
# 2                 τώρα έγιναν

grepl仅用于检测某些模式,不做任何更改。为此你想要gsub。然后你也在处理一个向量df$freetext,而不是整个数据框df,并且分配必须是同一列,而不是整个数据框。最后,该模式需要[$ ]表示字符的结尾或空格,以免从 καιρό 中删除 και。


推荐阅读