문제

r에서 추가 분석을 수행하기 위해 JAGS에서 jags의 일부 샘플링 된 출력 값을 .CSV 형식으로 내보내려고하지만 문제가 발생했습니다.

> 
> 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