7
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

posted at

updated at

Organization

Rで絵文字(sushi <- c(🍣)への道)

はじめに

私事ですが、著名なシリアルパッケージクリエイターである@dichikaさんがピザを食べながら言っていた言葉が頭に残っています。

sushiに:sushi:を代入したい

その熱意と言葉に夢を感じました

それからちょくちょく、どうすればRで:sushi:を食えるか、否、絵文字を使えるかということを考えていて、Twitter上でぶつぶつとつぶやいたり、Qiitaに記事を書いたり、絵文字使いたい勢とやり取りをしていたのですが、海の向こうにもR上で寿司を食べたい絵文字を使いたい人がいるみたいで、素晴らしいパッケージを作成してくれました。ありがとう:cat: 感謝です。

そんなわけでRで絵文字を扱えるremoji:package:パッケージを日本のRで絵文字使いたい勢に届けます。ほとんどREADMEの内容ですがあしからず。

remojiパッケージ

まだCRANには登録されていないみたいなので、devtoolsパッケージを使ってGitHubからインストールします。

devtools::install_github("richfitz/remoji")
library("remoji")

絵文字を使う

message(emoji("cat"))

猫の絵文字:cat:が表示されました。では本題の寿司を召喚したいと思います。どういう理由かわかりませんが、message関数をかませる必要があるみたいですね。

message(emoji("sushi"))

キタ━━━━(゚∀゚)━━━━!!嬉しいので回転寿司(多重寿司分身の術)にしてみます。お茶も欲しいですよね。ということで。

message(emoji(c("sushi", "tea"), pad = TRUE)[c(1, 1, 1, 1, 1, 1, 2)])

:sushi: :sushi: :sushi: :sushi: :sushi: :sushi: :tea:

寿司食べたい :sushi:

文字列と絵文字を組み合わせる場合には、先程同様、message関数とsub_emoji関数を使用します。

message(sub_emoji("寿司食べたい :sushi:"))

使用可能な絵文字

絵文字を表示させるには、絵文字を表わす文字列を知っている必要がある(sushi -> :sushi:はできるが:sushi: -> 寿司はできない)ので、list_emoji関数という一覧を取得する関数で使用可能な絵文字を把握できます。

では逆に、本物の絵文字一覧を表示するには?というと、READMEにあるように

message(emoji(list_emoji(), TRUE))

をすればコンソールがカラフルな絵文字で埋め尽くされます。

絵文字を探す

この絵文字ってこういう文字列だったかなー、というときに便利な関数も用意されています。

find_emoji("sun") %>% emoji_table()

関連する絵文字とその文字列が表示されました。やったぜ。

ちなみに、存在しない絵文字を与えると怒られます笑

find_emoji("yakiniku") %>% emoji_table()

おわりに

寿司が一歩近づきました。素晴らしいです。とはいえ、先述したように「:sushi: -> 寿司」ができないというような課題もあります。plot(~, pch =:beer:)みたいなことも無理なわけで...。

絵文字スキーな皆さん、どうぞお力添えを。

参考

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
7
Help us understand the problem. What are the problem?