作者chien533 (謠指部總司令)
看板Statistics
標題[問題] R存取非物件報表的問題
時間Sun May 18 04:30:48 2008
請問一個關於 R 存檔的問題
我目前在執行一個和特殊的模型,裡面有些報表找不到相對應的物件名稱
所以在配適完後,我得列印出所有結果
然後用複製貼上的方法存在純文字檔裡
不過昨天我發現可以用 sink 函數來讓這些報表自動存入一個指定的文字檔裡
例如:
sink("路徑\\output.txt")
b <- 某function
print(b) ###這就是要列印 b 裡面所有報表
sink()
unlink("路徑\\output.txt")
假設這個 b 並不是物件,所以沒有辦法存成資料檔,因此得先呼叫 b 一次,讓
結果印在視窗裡,然後直接用 sink 把結果印在output.txt 裡面,這樣我可以自
己去找要用的數據。
不過,如果這段程式包在一個迴圈裡面,則列印 b 的這個動作將不會在視窗上有
任何反應,當然也不會有結果印在 output.txt 裡面。
所以想請問這種情況有什麼解決的方法?
謝謝!
[更新問題]
用了一些方法,發現如果用 print 在一個迴圈內時可以跑出結果,但是 sink 無法
存檔。若用 print 在兩個迴圈內時,則 print 根本無法印出結果,當然 sink 也
沒東西可存。
所以.....還是希望有人想出解決的方法。謝謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 66.57.44.217
※ 編輯: chien533 來自: 66.57.44.217 (05/18 04:57)
1F:推 Ajax3:Is "b" a output of a function? 05/18 08:58
2F:推 lin15:應該直接下b sink就可以抓到報表 不需要用到print 05/18 09:40
3F:推 lin15:試了一下原來放在迴圈內一樣都不會顯示=.= 05/18 09:42
4F:→ lin15:sorry 原po可以考慮把結果放到物件中 迴圈後再呼叫出來 05/18 09:43
5F:推 lin15:又試了一下print放在迴圈內應該會跑值出來才對說... 05/18 09:47
6F:→ chien533:我剛試了一下,如果只有一個迴圈,那print就會顯示結果, 05/18 10:28
7F:→ chien533:這時候sink就有辦法紀錄,可是如果放在兩層迴圈裡面,就 05/18 10:28
8F:→ chien533:沒有辦法印出報表,而sink也沒有辦法紀錄了 05/18 10:29
9F:→ chien533:我沒有辦法把結果放在物件,因為每次迴圈跑完這個物件都 05/18 10:30
10F:→ chien533:會update,所以最後只能叫出最後一次迴圈所得到的結果/_\ 05/18 10:30
※ 編輯: chien533 來自: 66.57.44.217 (05/18 13:49)
11F:→ chien533:我用 capture.output 這個函式解決所有問題了! 05/18 14:04