疑問とその回避
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型に変換はできません」
って
何が違うのでしょ?