R言語の勉強で、本に書かれているサンプルコードにコメントをふる作業をしています。




なんか慣れないのは・・・





X <- 1:6

EX <- sum( X * kekka[,2] )


で、


「1×kekka[1,2]+2×kekka[2,2]+3×kekka[3,2]+4×kekka[4,2]+5×kekka[5,2]+6×kekka[6,2]」


の計算ができちゃうとことか






prod ( 1 : ( i-1 ) )


が階乗計算なとことかですかね。






すごく便利ではあるんですけども・・・






「1:6」を変数に代入っていうのが気持ち悪いのかも?


「1:6」ってどういう値?






・・・でもよく考えたら、Excelとかで「=SUM(A1:A6)」って使いますね。


こんな感じで理解したら、「prod ( 1 : ( i-1 ) )」はSUMがprodに変わっただけと考えれば

全然おかしな感じはしないですね。


そう考えると「X <- 1:6」って定義できるのは大変ありがたい機能です。






って書いているうちに、


「X <- 1:6」を「値」って捉えちゃってるのが間違っているのかも?列数1の配列なのかも?と


思い始めてきました。



sum (

X

1
2
3
4
5
6
*

kekka[,2]

0.2826
0.3281
0.2371
0.1043
0.0388
0.0091


このイメージの方が合っていそうな気がします。


添え字がないと「当然スカラーなもの」(もしくはアドレス)と考えてしまう習性がありますが


変数の定義をしなくてもよいというところで、慣れるまでやや混乱するかもしれません。





今日思ったのは


「書いてあるコードを解析するだけだと、間違った解釈に気づかないまま覚えてしまうかも」


ということです。



早く進みたいのに遠回りのように感じるけど、


一旦きちんと言語の勉強をして構造を理解する必要があるかもしれないなぁ~と思い始めてきました。