1/2 毎日ずっとひだまりのなかでねてたい
Rのpasteで空白が入っちゃうのを防ぐ
http://cse.naro.affrc.go.jp/takezawa/r-tips/r/17.html
このHPの例みたいに
paste("May I", "help you ?")
[1] "May I help you ?
"May I"と"help you ?"との間に空白が入るのは,多分区切り文字のデフォルトが半角スペースになっているから.これがいやだっていうときは,
paste("May I", "help you ?", sep ="")
引数で区切り文字の指定を何にもなしにすればOK.
rbindのコラム名が違うとエラーになる話
「names do not match previous names」というやつ.
これ,超微妙な違いでもダメなので,ほかのとこでdata.frameでくっつけたデータを使おうとしたりすると,そのデータ名が列名にくっついていてrbindで扱えなくなったりする.たとえば,
data <- data.frame(D1 = data1, D2 = data2)
datanew <- data.frame(D3 = data3, D4 = data4)
とかすると,多分列名にD1.緯度とかD2経度みたいにデータ名がついちゃったりすることがあり,コラム名が違うものになってしまう.
そこで,コラム名を変えてそろえてしまえばrbindが使えますという話.
http://cse.naro.affrc.go.jp/takezawa/r-tips/r/26.html
これはたぶん万能.
names(datanew) <- names(data)
とかすればOK(コラム名が同じデータかどうかは確認すること).
もしくは,もっと単純なケースで,for文で同じものを繰り返しくっつけていくのにrbindを使いたくて…くっつけていく元のデータは存在しなくて…でも新しく定義するのはめんどくさくて…みたいなときは,初期値をNULLにしておけば解決.
matA <- matrix(1:6, ncol = 3, nrow = 2)
matSum <- rbind(matSum, matA) #matSumが見つからないというエラーが出ます
#まとめ用のオブジェクトをNULLで定義しておく
matSum <- NULL
matA <- matrix(1:6, ncol = 3, nrow = 2)
matSum <- rbind(matSum, matA) #エラーを出しません
rbindの「不正な因子基準」
「In `[<-.factor`(`*tmp*`, ri, value = c(○○): 不正な因子水準です。NAが発生しました」
rbindは便利なようで意外とよくわからないエラーが出る.笑
hoge <- rbind(hoge1, sapply(hoge2, as.character))数値型のデータに文字型をアペンドする事は可能だが,文字型のデータに数値型などのデータをアペンドすると「In `[<-.factor`(`*tmp*`, ri, value = c(○○): 不正な因子水準です。NAが発生しました」という(それを読むだけでは意味の良くわからない)警告が出て,数値が<NA>に書き換えられてしまう.それを避けるためにも型が混ざっているようなデータの場合は,「rbind」の二つ目の引数に「sapply(引数, as.character)」をつけていた方がいいだろう.
・文字型データフレームに数値型データフレームをくっつけようとすると出るエラー
・これが出ると数値がNAに変えられてしまう
・これを防ぐためには,数値型データのほうにas.characterを適用して全部文字列型に変換すればエラーは出なくなる
Rの文字コードエラーの話
Error: invalid multibyte character in parser at line 1
というのが突如出始めることがある.Rstudioは基本的に実行しなければ勝手にコンソールにメッセージが出ることはないのだけど,これは(なにもしてないのに)一定時間ごとに何度も表示される.こわい.笑
その原因はなにかよくわからなかったのだけど,こちらを見て考えるに,
特定文字のあとに[をつけると出るらしい.文字コードの問題みたいだ.ちなみに私はギリシャ文字じゃなくて日本語(漢字)のあとに[だったのだけど…
これみたいな感じで,データ名$列名 の表現を使おうとしていた.この表現をやめてデータ名[,列番号]にしたら直ったから,多分ここが原因だったのだと思う.
同じエラーに対してアップデートしてみてくださいという回答がついている質問サイトもあったから,
どうしても上の表現を使わなきゃいけないときはアップデートしてみるのもいいかも.
BibTeXがわからなかった話
Mendeleyを導入しました.このあたり見れば簡単にbibファイル作ってその引用を使ってかけます.