我对 R 中的过滤器有点困惑,它似乎不适用于带短符号(©)的西里尔字母。这是我的数据的简化数据框,其中包含 1363 行。
df <- data_frame(lex_1 = c('гей', "лесбиянка", "гей", "трансгендер", "гей", "лесбиянка"),
lex_2 = c("лесбиянка", "лесбиянка", "трансгендер", "трансгендер", "гей", "гей"),
w1w2 = c(10, 20, 25, 40, 65, 90),
w1 = c(1, 2, 3, 4, 5, 6),
w2 = c(6, 5, 4, 3, 2, 1))
现在,从这个数据框中,我想过滤 lex_1 上的“гей”字符串,所以我使用了这段代码
kolokasi_gay <- df[df$lex_1=="гей",]
但是当我将过滤器的单词更改为“трансгендер”时,它工作得非常好。
kolokasi_gay <- df[df$lex_1=="трансгендер",]
现在我想知道,哪里出了问题?为什么它不想只过滤带有短音“й”的单词?
感谢您的帮助,谢谢。
我尝试更改要过滤的单词,当该单词没有任何短音变音符号时,它起作用了。
该字符有一个 Unicode
utf8ToInt("й")
[1] 1081
您的数据框似乎使用“и”和“̆”的合并版本
utf8ToInt("й")
[1] 1080 774
您可以使用
检查两者grepl(paste0(intToUtf8("1080"), intToUtf8("774"), "|", intToUtf8("1081")), df$lex_1)
[1] TRUE FALSE TRUE FALSE TRUE FALSE