昨天在我的问题中"Can R read html-encoded emoji characters?",用户rensa noted that:
据我所知,在R控制台中没有打印表情符号的解决方案:它们总是以" U0001f600" (或者你有什么)但是,我上面描述的包可以帮助你在某些情况下绘制表情符号(我希望扩展ggflags以在某些时候显示任意的全彩表情符号)。他们还可以帮助您搜索表情符号以获取他们的代码,但他们无法获得代码AFAIK的名称。但也许您可以尝试将emojilib中的表情符号列表导入R并与数据框进行连接,如果您已将表情符号代码提取到列中,则获取英文名称。
这看起来如何?
(注意:我发布此问题的目的是为了立即回答,而不是将其发布在上面链接的问题中,因为它与该问题相关,但仍可能对其他人有用。)
答案 0 :(得分:2)
下面的方法适用于将表情符号或unicode表示转换为名称。
我很高兴在CC0奉献下发布下面的代码段(即,将此实现放入公共域以供免费重用)。
# Get (MIT-licensed) emojilib data:
emoji_json_file <- "https://raw.githubusercontent.com/muan/emojilib/master/emojis.json"
json_data <- rjson::fromJSON(paste(readLines(emoji_json_file), collapse = ""))
get_name_from_emoji <- function(emoji_unicode, emoji_data = json_data){
emoji_evaluated <- stringi::stri_unescape_unicode(emoji_unicode)
# names(json_data)
vector_of_emoji_names_and_characters <- unlist(
lapply(json_data, function(x){
x$char
})
)
name_of_emoji <- attr(
which(vector_of_emoji_names_and_characters == emoji_evaluated)[1],
"names"
)
name_of_emoji
}
get_name_from_emoji("\\U0001f917")
# [1] "hugs"
get_name_from_emoji("") # An attempt actually pasting the hugs emoji in also works.
# [1] "hugs"