Как записать некоторые данные R в файл.csv?

Я пытаюсь экспортировать некоторые выборочные выходные значения из 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

2 ответа

Решение

mcmc.list может содержать несколько цепочек, вы хотите выбрать цепочку, которую хотите при записи в файл CSV:

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

Должен делать "правильные вещи", хотя у меня нет цепочки, чтобы проверить это в данный момент.

write.table ожидает фрейм данных или матрицу (если вы не передадите его, он попытается вызвать его). Если вы посмотрите на структуру codaSamples например str(codaSamples) вы увидите, что это объект списка с элементами, которые являются списками, фреймами данных или матрицами (я не знаю, что это на самом деле). ЕСЛИ это так смешано, write.table понятия не имеет, как превратить его в CSV.

Если вы хотите выбрать только матрицу, вы можете найти название элемента с names(codaSamples) или снова из str(codaSamples) а затем сделать что-то вроде sample.mcmc <- codaSamples[['Matrix']] или как там ни зовут, то вы сможете сохранить sample.mcmc в файл, как у вас есть.

Другие вопросы по тегам