为什么R有时会认为ASCII字符是非ASCII字符?[已关闭]

sr4lhrrt  于 2023-02-01  发布在  其他
关注(0)|答案(1)|浏览(141)

这个问题是由打字错误或无法再重现的问题引起的。虽然类似的问题在这里可能是on-topic,但这个问题的解决方式不太可能帮助未来的读者。
4小时前关门了。
Improve this question
我正在尝试识别 Dataframe 中包含非ASCII字符的元素。例如,在下面的 Dataframe 中,我希望unicode_only列中的所有行和mixed列中的最后两行。

example_dataset <- tribble(
  ~ascii_only, ~unicode_only, ~mixed,
  "a",         "表",          "c",
  "b",         "外",          "表",
  "c",         "字",          "外",
)

然而,当我尝试使用正则表达式"[^[:ascii]]"过滤元素时,包含了一些仅ASCII的元素。

example_dataset %>%
  mutate(row_number = row_number()) %>%
  pivot_longer(c(everything(), -row_number),
               names_to = "variable") %>%
  select(variable, row_number, value) %>%
  arrange(variable, row_number) %>%
  filter(str_detect(value, "[^[:ascii]]"))

| 变数|行号|价值|
| - ------|- ------|- ------|
| 仅ASCII|第二章|b.人口基金|
| mixed | 2 | 表 |
| mixed | 3 | 外 |
| unicode_only | 1 | 表 |
| unicode_only | 2 | 外 |
| unicode_only | 3 | 字 |
为什么"[^[:ascii]]"b匹配?

相关问题