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

StackOverflow https://stackoverflow.com/questions/19842940

  •  29-07-2022
  •  | 
  •  

Вопрос

Я пытаюсь экспортировать некоторые выбранные выходные значения из 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 Ожидает кадр данных или матрицу (если вы не проходите его, он постарается его приступить). Если вы посмотрите на структуру codaSamples с например, str(codaSamples) Вы увидите, что это объект списка с элементами, которые являются списками или кадрами данных или матриц (я не знаю, что это такое на самом деле). Если это смешано,, write.table понятия не имеет, как превратить его в CSV.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top