[程式] 矩陣輸出及輸出存檔問題 for R

看板Statistics作者 (糙 咬我阿)時間13年前 (2012/05/11 17:02), 編輯推噓2(209)
留言11則, 3人參與, 最新討論串1/1
[軟體程式類別]: 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

05/11 19:13, , 1F
try write.csv
05/11 19:13, 1F

05/11 19:14, , 2F
你可能可以在執行這些動作之前檢查 class(out)
05/11 19:14, 2F

05/11 19:14, , 3F
更正: class(output)
05/11 19:14, 3F

05/14 16:24, , 4F
在回圈中加入一行 print(class(aaa(data[i,],data2[i,])))
05/14 16:24, 4F

05/14 16:24, , 5F
看看是哪筆出問題
05/14 16:24, 5F

05/14 18:13, , 6F
輸出結果會變成list,是因為你的function做出的東西長度不同
05/14 18:13, 6F

05/14 18:14, , 7F
若 class 沒問題就改用 length()
05/14 18:14, 7F

05/15 13:56, , 8F
感謝兩位大人的指教!我的問題莫名奇妙的解決了...
05/15 13:56, 8F

05/15 13:58, , 9F
我程式回圈內容有個地方想錯造成的錯誤
05/15 13:58, 9F

05/15 13:59, , 10F
又學到一招可以用class()來除錯,好用!!!非常感謝!!!
05/15 13:59, 10F

05/15 14:09, , 11F
喔對~write.csv也成功了,感謝!!!學到好多!!!
05/15 14:09, 11F
文章代碼(AID): #1FhDN1EW (Statistics)