Pergunta

Estou tentando exportar alguns valores de saída amostrados de Jags para o formato .csv para executar análises adicionais em r, mas obtive alguns problemas.

> 
> 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
Foi útil?

Solução

uma mcmc.list Pode conter várias cadeias, você deseja selecionar a cadeia que deseja ao escrever para o arquivo CSV:

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

Deveria fazer a "coisa certa", embora eu não tenha uma corrente para testar isso no momento.

Outras dicas

write.table espera um quadro de dados ou uma matriz (se você não passar, ele tentará coagir). Se você olhar para a estrutura de codaSamples com por exemplo str(codaSamples) Você verá que é um objeto de lista com elementos que são listas ou quadros de dados ou matrizes (não sei o que realmente é). Se for misturado assim, write.table Não tem idéia de como transformá -lo em um CSV.

Se você deseja selecionar apenas a matriz, você pode encontrar o nome do elemento com names(codaSamples) ou novamente de str(codaSamples) E então faça algo como sample.mcmc <- codaSamples[['Matrix']] Ou seja o que for o nome, então você poderá salvar sample.mcmc para um arquivo como você tem.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top