|
setup diary |
Rをいじっていたら、そのくせに苦労したので、その対処法をメモしておく。
まず苦労したのが、forループを使ってn回ループしようとして、n==0のときにうまく行かない点である。
for(i in 1:n){cat(i)}とすると、n==0で実行すると1と0で二回実行されてしまうのである。いろいろと考えた結果、
for(i in (1:n)[0:n]){cat(i)}とすると、うまく行くことが分かった。または、
for(i in seq_len(n)){cat(i)}の方が素直かな。
次に苦労したのが、1行または1列の行列が自動的にベクトルに変換される点である。diag(3)[-1,-1]とすると2行2列の行列になるが、diag(2)[-1,-1]とすると、1行1列の行列になると思ったら、ベクトルになってしまうのである。これを行列にしたかったので、matrix(diag(2)[-1,-1],1)とした。美しくは無いが、仕方ないかな。