如果我們輸入,letters我們會得到英文字母表中的所有小寫字母。但是,還有更多可能的字符,例如?,é等等。還有像$or之類的符號(。我發現這張unicode 字符表正是我需要的。當然,我不想在一個向量中復制和粘貼數百個可能的 unicode 字符。
到目前為止我已經嘗試過:該表給出了(某些)unicode 字符的小數。例如,看下面的小表:
Glyph Decimal Unicode Usage in R
! 33 U 0021 "\U0021"
所以如果 type"\U0021"我們得到一個!. 此外,paste0("U", format(as.hexmode(33), width= 4, flag="0"))回傳"U0021"與我需要的非常接近,但添加\會導致錯誤:
paste0("\U", format(as.hexmode(33), width= 4, flag="0"))
Error: '\U' used without hex digits in character string starting ""\U"
我被困住了。恐怕即使我知道如何將數字轉換為字符as.hexmode(),仍然存在所有 unicode 字符都沒有小數的問題(見表,小數以 591 結尾)。
知道如何生成一個包含鏈接表中列出的所有 unicode 字符的向量嗎?
(這個問題始于一個現實世界的問題,但現在我主要只是想知道如何做到這一點。)
uj5u.com熱心網友回復:
可能有更簡單的方法可以做到這一點,但這里有。該Unicode軟體包包含您需要的一切。
首先,我們可以獲得一個 unicode 腳本串列和塊范圍:
library(Unicode)
uranges <- u_scripts()
檢查我們有什么:
head(uranges, 3)
$Adlam
[1] U 1E900..U 1E943 U 1E944..U 1E94A U 1E94B U 1E950..U 1E959 U 1E95E..U 1E95F
$Ahom
[1] U 11700..U 1171A U 1171D..U 1171F U 11720..U 11721 U 11722..U 11725 U 11726 U 11727..U 1172B U 11730..U 11739 U 1173A..U 1173B U 1173C..U 1173E U 1173F
[11] U 11740..U 11746
$Anatolian_Hieroglyphs
[1] U 14400..U 14646
接下來我們可以將范圍轉換為它們的序列。
expand_uranges <- lapply(uranges, as.u_char_seq)
要獲得所有字符的單個向量,我們可以將其取消列出。這并不容易使用,因此最好將它們保留為串列:
all_unicode_chars <- unlist(expand_uranges)
# The Wikipedia page linked states there are 144,697 characters
length(all_unicode_chars)
[1] 144762
似乎都是所有這些,頁面需要更新。它們存盤為整數,以便列印它們(假設支持字形),例如,列印日文片假名:
intToUtf8(expand_uranges$Katakana[[1]])
[1] "ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ????"
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/448801.html
上一篇:將字串轉換為整數值
