かぎラン

2000字くらいの、読んで面白い記事を書きたい。

仕事が速いのはいいこと

昨日の17時くらいに頼んだ品物が、今日の11時には届いていた。作るのも、送るのも大変だろうにこんなに早く届いて驚いた。

土曜日に届くものと思っていたから、これだけ対応が早いと、こちらの仕事の進みも違う。

他の人の仕事の速さを当然だと思ってはいけないが、自分が頼まれた仕事は出来るだけ早く上げたい。そうすれば周りの人もいい気分で過ごせるだろう。

不正なマルチバイト文字があります - R

Excelでデータを入力してCSVにし、Rに読み込ませることが多い。ところが、読み込ませるだけでWindows版Rではエラーが起きてしまうのだ。

手順1

WindowsmacOS上でExcelからCSVを吐き出させる。最近はただのCSVではなく、エンコーディングUTF-8(ユーティーエフ・エイト)の物を吐き出せるようになっているみたいだ。 Windows上のExcelで作ったCSVcsv_made_by_winexcel.csvmacOS上で作ったものはcsv_made_by_macexcel.csv命名

手順2

Rで読み込ませる。

maccsv <- read.csv("csv_made_by_macexcel.csv")
wincsv <- read.csv("csv_made_by_winexcel.csv")

macOS版Rでは正常に読み込まれ、エラーは起きない(当然)。

f:id:keyprotein:20181220010243p:plain

しかし、Windows版では残念な結果に。

f:id:keyprotein:20181220010759p:plain

<ef>サ<bf>って何だよ。

手順3

「不正なマルチバイト文字があります」という主張なので、Windows謹製memopad.exeでその文字列を取り除いてやろうじゃないか。

f:id:keyprotein:20181220011458p:plain

1行目の先頭にあるらしいが……何も見当たらない。

手順4

色々試してみる。Google検索「R 不正なマルチバイト文字があります」の先頭から9件。

1件目 エンコーディングを明示(1)

r - CSVを読み込もうとすると「不正なマルチバイト文字があります」というエラーが出る - スタック・オーバーフロー

f:id:keyprotein:20181220011917p:plain

意味なし。

2件目

Mac版のRでマルチバイトエラーが出た時は… | 全人類がわかる統計学

MacじゃなくてWindowsの問題なんだよな。

3件目 エンコーディングを明示して上書き保存(1)

【R】csvデータを読み込む時にいろいろエラーが出ることを解消したい - いつかのぎゃふんのために

f:id:keyprotein:20181220013013p:plain

エンコーディングを明示的にUTF-8と指定しろとのこと。memopadとAtomで試したが、参考にならず。

4件目 エンコーディングを明示(2)

R のデータ読み込み時の問題について | DATUM STUDIO株式会社

一時期流行ってたオウンドメディアというもの(ウェブ上にいらない情報を増やし、利便性を下げる元凶)。fileEncodingパラメーターを指定しろとのこと。1番で試したのと同じ。

5件目 エンコーディングを明示(3)

不正なマルチバイト文字 - R七転八倒

また1番と同じ。ここから、txtのデータをタブ区切りで読み込むようにRに命令。/ law <- read.table("blog1.txt",head=T,sep=",",na.strings="NA")タブ区切りって自分で言ってるのに区切り文字をわざわざカンマと指定しているあたり、ここのくだりはギャグセンスがある。

6件目 エンコーディングを明示(4)

こんな書き方もあるのか。data <- read.csv(file("test.csv", encoding="shift-jis"), sep=",", header=T, row.names=1)本質的には1番と変わらないが、試した。

f:id:keyprotein:20181220014833p:plain

無駄だった。

7件目 エンコーディングを明示(5)

外部データ読み込み時に起こる、マルチ文字エラーの対処 | Takuro Fujita@NITFC

この人も1番と同じ、明示組。

8件目 エンコーディングを明示(6)+メモ帳で編集(新)

Rにcsvを読み込むと二つのエラーが出るときの対処 for mac - Java初心者の語録明示組だけど、末尾にもエラーがあったようだ。

f:id:keyprotein:20181220015658p:plain

これをヒントに、先頭行を改行して上書きしたが、状況は変わらず。

9件目 システムの地域設定を変更(新)

R - ShinyでrunAppを実行すると、 '<ef>サ<bf>Date' に不正なマルチバイト文字があります とエラー|teratail

解決しそうだけど、CUIでいじるような設定は触りたくない。

結局、Google検索結果9件目までに手軽な解決方法は無かった。

手順5

エラー内容からして、先頭に何か悪いものが入っているらしい。Windowsメモ帳よりはパワフルなAtomなら見えるはず。ということで、再度AtomCSVを開き、先頭を探ると、一番先頭にカーソルを置いて右矢印キーを押しても進まないことが判明。見えない何かが1文字あるようだ。

f:id:keyprotein:20181220122422p:plain

見えない1文字を削除して、再びRに読み込ませると、

f:id:keyprotein:20181220021024p:plain

やっと読み込めた。

所感

謎の文字列 %EF%BF%BD

これを見る限り、Excelエンコードに失敗していると思われるExcelさん悪口言ってごめんなさい。

また、一度Googleドライブで変換して、それからCSV形式でダウンロードしたところ、問題なく読み込めた。f:id:keyprotein:20181220021632p:plainなので、大事なデータをGoogleに渡すのはいい気持がしないが、これもひとつの方法ではある。

追伸

テキストファイル | R プログラミング解説

<ef>サ<bf>とはBOM (byte order mark) らしい。

BOMの地雷を踏み抜かない正しい文字コードとの接し方

この有用なタイプのオウンドメディアによれば、Excelの標準文字コードはShift-JISで、 UTF-8エンコードされたCSVはBOMがあれば読み込めるようだ。なので、ExcelUTF-8エンコードされたCSVを吐き出すときは、自分で開けるようにBOMを付加するのだろう。それが、R上では不正なマルチバイト文字としてエラーを引き起こすようだ。

朗報

Excelから書き出すときに、上の方にある「CSV UTF-8 (コンマ区切り) (*.csv)」形式を選択して保存していた。

しかし、下の方にある「CSV (コンマ区切り) (*.csv)」で保存しても、日本語の文字(恐らく2バイト文字全般)が含まれなければUTF-8エンコーディングになることがわかった。そして、BOMは追加されない!

なので、ExcelCSVを書き出し、Rで解析しようという人は、「CSV (コンマ区切り) (*.csv)」を選択しよう。

f:id:keyprotein:20181220133153p:plain

プレゼンには練習が必要だ

プレゼンは多数に向けて行う。多くの人の時間を使う行為だ。どんなに資料が立派でも、語り口がしどろもどろであれば聞くに耐えない。

急いで作ったばかりの資料では、論旨がハッキリとせず、要領を得ない説明し終始し、誰の得にもならない。理解されずに、質問が全く出てこないのは最悪である。

話の流れを確認するためにも、それを体に染み込ませるにも、練習は必要である。

さっぱりした遣り取り

飲食店で、店員さんとはコミュニケーションを取ることはなかった。

自分が何を望んでいるか言葉に出すことで、想像以上にお互い気持よく過ごせるものだとわかった。

とはいっても、何かにつけサービスを要求したり、馴れ馴れしく声をかけるのは考えもだ。

あまり冷たくもならず、かえってベタベタもせず。大人としての、さっぱりした遣り取りは効果的だ。この気分には「颯張り」の字を当てたい。

臨機応変さとグダグダさ

周囲の状況に応じて、臨機応変に対応することは望ましいだろう。しかし、リーダーが全てのものに耳を傾けていたら、纏まりがなくなり、方向性がなくなり、グダグダになる。

臨機応変というのは、起こりうる事態をある程度予測し、練習ないしはリハーサル・シミュレーションによって備えておくことで、方向性を失わずに達成できる。

量産化において大事なこと

何か人数分道具が必要になり、いいアイディアを得たとする。

試しに1個作るといい出来だったとする。

さあ、50人くらいは参加するだろうから50個作ろうと意気込んで、10個くらい勢いで作ったとする。

そこでやっと気づく。1個なら苦でもなんでも無いが、量産するとしたら苦しいことがわかる。ほんの遊び心で加えたディデールが自分の首を絞める。

量産化するには、複雑な運動をせずに目標とする形が作れることが大切だろう。つまり、できるだけ回転運動や直線運動だけで達成することだ。

Mendeleyの使えなさと言ったら

普段、Macで文献管理等ソフト「Mendeley」を使用している。大変便利で、これを使い始めてからは様々なところ(Google Keep、OneNoteEvernoteDropbox Paper、Google Drive、ローカルディスク)に分散していた論文たちとメモが一元化できるようになった。Macのバッテリーの持ちが悪いので、久々にWindowsのモバイルで仕事をしようとなったが、Mendeleyを開いて驚いた。

インターフェースのフォントサイズがデカすぎて、見通しが悪いのだ(下図参照)。Webをひっくり返したが、同じような事例は見当たらなかった。プロパティ > 互換性の各設定を触っても、悪化さえすれど一向に解決しない。Surface Pro (2017)の解像度が高すぎるせいなのか。誰がに助けてもらわないと、Windowsでは仕事にならなそうだ。

f:id:keyprotein:20181214190851p:plain
とにかくフォントサイズのデカいMendeley(左;画像編集済み)とMicrosoft Edgeで開いた「阿部寛のホームページ」(右)