疑問とその回避


apply関数を使って
行列処理をしてた時の
エラーというか困ったこと

func<-function(list){
list2<-matrix(c(1,0,0,2,0,0,3,0,0),ncol=3)
for(i in 1:3){
if(list[i]==list[7]) list2[2,i]<-1
if(list[i+3]==list[8]) list2[3,i]<-1
}
if(sum(list2[2,])==1) return(list2[1,list2[2,]==1])
else return(list2[1,list2[3,]==1])
}

res<-apply(dat,1,func)

datの行ごとに
funcを動かして
返り値をresに格納したんだけど、

なぜかresがリスト型になってしまった


で、
リスト型だから
このresをdatの最終列に
付け加えたりできなくて困った
(というか、まずこれがリスト型ということに気付かなかった)

でも無事にリスト型の操作のTipsを発見
http://www.okada.jp.org/RWiki/?%A5%EA%A5%B9%A5%C8Tips%C2%E7%C1%B4

res<-unlist(res)
でうまくいった^^

でもここでは
res<-as.numeric(res)
でもうまくいきそうな感じなんだけど、
それはダメだった

「double型に変換はできません」
って

何が違うのでしょ?