2019-09-04

これをやるだけで上位1%になれるRプログラミングTIPS

Rはプログラミング苦手な人にも覚えやす

が、そのためか、プログラミングの得意な人からしたら「ええ・・・」となるような行動を初学者が取りがちに思える

そこで、とりあえずこれだけ守ってほしいというアドバイスを書きました。

エラーが起きたとき

あれこれするより先にエラーメッセージを読め。ぶっちゃけエラーメッセージを読むだけで上位10%だ

あと、エラーメッセージとWarning messageは違うものからな。行間を読む前に行を読め

エラーメッセージの内容がわからなかったらエラーメッセージをコピペしてググれ

日本語サイト微妙だったとき英語でググれ

Stack Overflowにだいたい同じエラーで困ってる人が既に投稿してる

エラーは生じてないが思い通りの挙動になっていないとき

定義した変数の中身を逐一確認して予定してる内容になってるか確認しろ

試行錯誤しすぎてわけがからなくなったら変数を全部削除して一番上から実行し直せ

変数の全削除は rm(list=ls()) でできる

実行し直してるときに、一行ずつ予定通りの挙動になってるか確認しろ

変数の型を逐一str()関数確認しろ

予定通りの型になっているか特に、因子型と数値型、因子型と文字型の混同で生じるミス多い

原因と思しき箇所の関数の使い方が正しいか確認しろ

ヘルプを見て使い方が合ってるのか確認

関数名 R 」でググれ

いきなりやりたいことを全部書くんじゃなくてデータを縮小 (例えば、一部の日にちのデータ) したり、処理を簡略化して小さいプログラムを作って徐々に拡張しろ

作図が思い通りにできないとき

関数名でググれ

日本語ダメなら英語でググれ

画像検索を使え (google検索の「画像」タブ)

自分が描きたい図に近い画像からそのウェブサイトに飛んでいけ

知らなきゃ検索できないから、よく使う用語は覚えておけ

例えば・・・

group (変数グループ化、例えば「条件毎に折れ線を引く」)

facet (「●●ごとに図を描く」)

alpha (透過度)

tick (目盛り線)

axis (軸)

background (背景)

legend (凡例)

例えば「●●条件毎に線を引きたいけど、geom_line()でどうしたらいいのか?」と思ったら「geom_line group」で検索したら、だいたいやりたいことをやってる画像が出てくるので、それを参考したらいい

検索がうまく引っかからない

日本語ダメだったら英語検索しろ (再掲)

“how to” と入れるとだいたいヒットする

例えば「how to change colors gradient ggplot2」でググると色をグラデーション様に変える方法が出てくる

人に質問するときのコツ

「○○でうまくいきますか?」「〇〇だとダメですか?」と質問してくる人、本当に多いけど、その質問は、以下の2つの理由で良くない

そもそもプログラムなんて同じ目的を達成するのに何通りも答えがあるので、「○○でうまくいきますか?」という質問には「それは書き方次第だなぁ」としか言いようがない

・試せばわかるのだから、人に聞くより実行してみたらいい。エラーの数だけお前は強くなる。エラーを受け取るのを恐れるな

答えやす質問は以下のような形だ

「○○を実行したら、こういうエラーが生じるんですけど、エラーの内容が理解できません」

「○○という形のデータを作りたいんですけど、この処理だとこの形にならないのはどこが原因ですか?」

「○○という処理を行ってくれる関数が探しても見つからないんですけど、ありますか?」

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん