我正在尝试根据其格式来过滤Symbol列 \uxxxx
这是很容易在视觉上,就是有些模样$
,¢
,£
,和其他人一样\u058f
,\u060b
,\u07fe
。
但是我似乎无法使用stringi
/ 弄清楚dplyr
library(dplyr)
library(stringi)
df <- structure(list(Character = c("\\u0024", "\\u00A2", "\\u00A3",
"\\u00A4", "\\u00A5", "\\u058F", "\\u060B", "\\u07FE", "\\u07FF",
"\\u09F2", "\\u09F3", "\\u09FB", "\\u0AF1", "\\u0BF9", "\\u0E3F",
"\\u17DB", "\\u20A0", "\\u20A1", "\\u20A2", "\\u20A3"),
Symbol = c("$", "¢", "£", "¤", "¥", "\u058f", "\u060b", "\u07fe", "\u07ff",
"৲", "৳", "\u09fb", "\u0af1", "\u0bf9", "฿", "៛", "₠",
"₡", "₢", "₣")), row.names = c(NA, 20L), class = "data.frame")
Character Symbol
1 \\u0024 $
2 \\u00A2 ¢
3 \\u00A3 £
4 \\u00A4 ¤
5 \\u00A5 ¥
6 \\u058F \u058f
7 \\u060B \u060b
8 \\u07FE \u07fe
9 \\u07FF \u07ff
10 \\u09F2 ৲
11 \\u09F3 ৳
12 \\u09FB \u09fb
13 \\u0AF1 \u0af1
14 \\u0BF9 \u0bf9
15 \\u0E3F ฿
16 \\u17DB ៛
17 \\u20A0 ₠
18 \\u20A1 ₡
19 \\u20A2 ₢
20 \\u20A3 ₣
我尝试过的
我尝试过使用变体nchar
但还没有运气
df$Symbol %>% nchar
# [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
df$Symbol %>% stri_unescape_unicode %>% nchar
# [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
df$Symbol %>% stri_escape_unicode %>% nchar
# [1] 1 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
题
我怎样才能在符号列过滤所有形式的行$
,¢
,£
等(相反的行喜欢\u058f
,\u060b
,\u07fe
)?
在这种情况下,您尝试使用Regex吗?
—
vpz
@vpz我没有,不。我认为会有某种“更正式”的方式来做到这一点,但是如果它可靠地工作,它将很乐意使用正则表达式!
—
史蒂夫(Stevec)
字符表示中的符号是否有某种图案?
—
vpz
@vpz唯一的信息是
—
Stevec
Symbol
列中包含的信息(我觉得应该足够了,但是我无法弄清楚如何区分-这很有趣,因为它很容易被人眼看到)
您可以使用,
—
H
utf8::utf8_valid()
但这可能无法区分现有的有效unicode和有效但未分配的unicode。您是否可以扩展最终要实现的目标?