作者moonbat (糙 咬我阿)
看板Statistics
標題[程式] 矩陣輸出及輸出存檔問題 for R
時間Fri May 11 17:02:52 2012
[軟體程式類別]:
R
[程式問題]:
資料處理
[軟體熟悉度]:
(1年以上)
[問題敘述]:
我自己寫了一個function,而當中final為最終我要的結果
##a、b、c皆為double屬性
aaa=function(data,data2){
final=t(c(round(a,2),round(b,2),round(c,2)))
final
}
而我的主程式中,以回圈的方式運用function幫我計算資料
##dim(output)=c(20,3),dim(data)=dim(data2)=18
for(i in 1:20){
output[i,]=aaa(data[i,],data2[i,])
}
但output卻出現下標數目不正確的錯誤
輸出結果:
[[1]]
[1]28.48
[[2]]
[1]0
....
..
..
我預期的矩陣維度應該是20*3,不曉得哪個環節出了問題。
另外,想請教一下有關輸出存檔的問題。
請問只能用sink()存成文字檔嗎?(因為覺得以excel檔開文字檔排版有點麻煩)
不曉得是不是可以將輸出存成excel檔。
還請各位前輩給予指點。
非常感謝!!!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 210.241.14.158
1F:推 Wush978:try write.csv 05/11 19:13
2F:→ Wush978:你可能可以在執行這些動作之前檢查 class(out) 05/11 19:14
3F:→ Wush978:更正: class(output) 05/11 19:14
4F:推 gsuper:在回圈中加入一行 print(class(aaa(data[i,],data2[i,]))) 05/14 16:24
5F:→ gsuper:看看是哪筆出問題 05/14 16:24
6F:→ gsuper:輸出結果會變成list,是因為你的function做出的東西長度不同 05/14 18:13
7F:→ gsuper:若 class 沒問題就改用 length() 05/14 18:14
8F:→ moonbat:感謝兩位大人的指教!我的問題莫名奇妙的解決了... 05/15 13:56
9F:→ moonbat:我程式回圈內容有個地方想錯造成的錯誤 05/15 13:58
10F:→ moonbat:又學到一招可以用class()來除錯,好用!!!非常感謝!!! 05/15 13:59
11F:→ moonbat:喔對~write.csv也成功了,感謝!!!學到好多!!! 05/15 14:09