「幾何平均」で
AllelesId<-NULL
AllelesId[[1]]<-c("7",9,10,11,12,13,14,15,16,17,18)
AllelesId[[2]]<-c("27",28,28.2,29,30,30.2,30.3,31,31.2,32,32.2,33,33.1,33.2,34,34.2)
AllelesId[[3]]<-c("7",6,9,9.1,10,10.1,10.3,11,12,13,14,15)
AllelesId[[4]]<-c("7",8,9,10,11,12,13,14,15,16)
AllelesId[[5]]<-c("12",13,14,15,16,17,18,19,21)
AllelesId[[6]]<-c("5",6,7,8,9,9.3,10)
AllelesId[[7]]<-c("7",8,9,10,11,12,13,14,15)
AllelesId[[8]]<-c("7",8,9,10,11,12,13,14,15)
AllelesId[[9]]<-c("16",17,18,19,20,21,22,23,24,25,26,27,28)
AllelesId[[10]]<-c("9.2",10.2,11,11.2,12,12.2,13,13.2,14,14.2,15,15.2,16,16.2,17.2,18)
AllelesId[[11]]<-c("13",14,15,16,17,18,19,20,21,22)
AllelesId[[12]]<-c("7",8,9,10,11,12,13,14)
AllelesId[[13]]<-c("10",11,12,13,14,15,16,17,17.1,18,19,20,21,22,23,24,25,26,27)
AllelesId[[14]]<-c("7",8,9,10,11,12,13,14,15)
AllelesId[[15]]<-c("17",18,19,20,21,22,22.2,23,23.2,24,24.2,25,25.2,26,27,28)
などとしているけど,そもそも,15 個の要素を持つ list を作りたいなら,vector("list", 15) とすべきだし,1000 個もあったらどうするつもり? AllelesId[[1]]~AllelesId[[1000]] まで書くの?
プログラムというのは,「繰り返し」をそのまま書かないで済むようにすべき。だれも,1から1000までの和をとるときに 1+2+3+…+1000 なんて書かないでしょ?それと同じ。
以下のように書けばよいだけ。
AllelesId2 <- list(c("7",9,10,11,12,13,14,15,16,17,18),
c("27",28,28.2,29,30,30.2,30.3,31,31.2,32,32.2,33,33.1,33.2,34,34.2),
c("7",6,9,9.1,10,10.1,10.3,11,12,13,14,15),
c("7",8,9,10,11,12,13,14,15,16),
c("12",13,14,15,16,17,18,19,21),
c("5",6,7,8,9,9.3,10),
c("7",8,9,10,11,12,13,14,15),
c("7",8,9,10,11,12,13,14,15),
c("16",17,18,19,20,21,22,23,24,25,26,27,28),
c("9.2",10.2,11,11.2,12,12.2,13,13.2,14,14.2,15,15.2,16,16.2,17.2,18),
c("13",14,15,16,17,18,19,20,21,22),
c("7",8,9,10,11,12,13,14),
c("10",11,12,13,14,15,16,17,17.1,18,19,20,21,22,23,24,25,26,27),
c("7",8,9,10,11,12,13,14,15),
c("17",18,19,20,21,22,22.2,23,23.2,24,24.2,25,25.2,26,27,28))
なぜ,第1要素だけ文字列にしているのかな?全部文字列にするために全てに " " を付けるのをきらったからでしょう。
これで同じものができたかどうかは,identical 関数で調べれば分かる。
> identical(AllelesId, AllelesId2)
[1] TRUE
「完全に同じだ」ということがわかる。
ついでだからだけど,なぜ,以下のように書かないのかはわからない。単にテストデータだからか?だったらこそ,簡潔に書きたいと思うのでは?
AllelesId3 <- list(c("7",9,10,11,12,13,14,15,16,17,18),
c("27",28,28.2,29,30,30.2,30.3,31,31.2,32,32.2,33,33.1,33.2,34,34.2),
c("7",6,9,9.1,10,10.1,10.3,11,12,13,14,15),
c("7",8:16),
c("12",13:19,21),
c("5",6:9,9.3,10),
c("7",8:15),
c("7",8:15),
c("16",17:28),
c("9.2",10.2,11,11.2,12,12.2,13,13.2,14,14.2,15,15.2,16,16.2,17.2,18),
c("13",14:22),
c("7",8:14),
c("10",11:17,17.1,18:27),
c("7",8:15),
c("17",18:22,22.2,23,23.2,24,24.2,25,25.2,26:28))
当然だが,これも,最初の書き方でできるものと完全に同じだ。
> identical(AllelesId, AllelesId3)
[1] TRUE
ちなみに,【幾何平均をもって、「代表値」とすることの意義はあるのか、あるとしたらどのあたりにあるのか…はまだ不明】ということの真意はよく分からないけど,対数正規分布の代表値は幾何平均だよね。