簡體   English   中英

如何將一些R數據寫入.csv文件?

[英]How to write some R data into a .csv file?

我試圖將JAGS的一些采樣輸出值導出為.csv格式,以便在R中執行進一步的分析,但遇到了一些麻煩。

> 
> codaSamples
[[1]]
Markov Chain Monte Carlo (MCMC) output:
Start = 4001 
End = 14000 
Thinning interval = 1 
           pai     theta[1]     theta[2]   theta[3]   theta[4]
[1,] 0.9774972 0.0081192689 0.0101738296 0.06981109 0.10674466
[2,] 0.9527935 0.0076402088 0.0099482287 0.07593964 0.11060883
[3,] 0.9467507 0.0076402088 0.0099482287 0.07593964 0.11060883
[4,] 0.9514251 0.0076402088 0.0099482287 0.07593964 0.11060883
[5,] 0.9419245 0.0076402088 0.0099482287 0.07593964 0.11060883
[6,] 0.9914296 0.0076402088 0.0099482287 0.07593964 0.11060883
[7,] 0.9903451 0.0076402088 0.0099482287 0.07593964 0.11060883
[8,] 0.9917113 0.0064704730 0.0095551321 0.06748512 0.11033123
...
... 

[10000,] 0.9917113 0.0064704730 0.0095551321 0.06748512 0.11033123

> write.csv(codaSamples,"CODASAMPLES.csv",row.names=FALSE)
Error in as.data.frame.default(x[[i]], optional = TRUE, stringsAsFactors =       stringsAsFactors) : 
cannot coerce class '"mcmc.list"' into a data.frame

一個mcmc.list可以包含多個鏈,您需要在寫入CSV文件時選擇所需的鏈:

write.csv(codaSamples[[1]], "CODASAMPLES.csv",row.names=FALSE)

應該做“正確的事情”,盡管目前我還沒有鏈條可以對此進行測試。

write.table需要一個數據框或矩陣(如果不傳遞它,它將嘗試強制它)。 如果用str(codaSamples)觀察codaSamples的結構,您會看到它是一個列表對象,其元素是列表,數據幀或矩陣(我不知道它實際上是什么)。 如果混合在一起, write.table不知道如何將其轉換為csv。

如果只想選擇矩陣,則可以使用names(codaSamples)或再次從str(codaSamples)找到元素的names(codaSamples) ,然后執行諸如sample.mcmc <- codaSamples[['Matrix']]之類的名稱是的,那么您應該可以將sample.mcmc保存到一個文件中,就像您擁有的一樣。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM