2013-03-07 6 views
0

mcmc 객체에 더 많은 expirience를 가진 사람이 나를 도울 수 있습니다.mcmc 객체 목록에 변수 이름 할당

문제점 : 20 개 이상의 mcmc 개체가 저장된 목록이 있습니다. mcmc 객체마다 변수 이름을 지정해야합니다.

나는 데이터 프레임의 열로 저장된 각 mcmc에 대한 모든 변수 이름을 가진 다른 목록을 가지고 있습니다.

나는이처럼이 코다 패키지에서 기능을 "varnames"을 사용하여 개별적으로이 작업을 수행 할 수 있습니다

내 dataframe 목록 및 "후방"내 MCMC 개체 목록 .. "투표"를이기

names <- votes[[1]]$legis # extracts the names variable for the first dataframe on the list. 
varnames(posterior[[1]]) <- names # assings the extracted names as variable names fo the first mcmc object on the list. 

그러나이 작업을 하나씩 수행하는 대신 모든 작업을 한꺼번에 수행하고 싶습니다. 다음 코드를 시도했습니다 ...

p2 <- lapply(posterior, function(x)varnames(posterior[[x]]) <- names) 

그러나 나는 Error in *tmp*[[x]] : Recursive indexing failed at level 2을 얻습니다. 나는 그 라인의 변형을 시도했지만 제대로 색인을 생성하는 방법이나 내가하고 싶은 일을하는 방법을 이해하는 데 어려움을 겪고있다.

나는 그 종류의 특정 문제를 알고 있지만 여기 누군가가 나에게 힌트 또는 뭔가를 줄 수 있습니다.

도움을 미리 감사드립니다. 미안 일부 데이터를 제공 할 수 없지만이 샘플을 실행하기가 다소 어렵습니다.

감사합니다, 페데리코

+1

'lapply 시도 (후부, 기능 (x)는 varnames (X) <- 이름) x는'이미 후방 [[1 때'x''에 의해 그렇지 않으면 당신은'posterior' 색인되어 작동합니다 ]]'또는 posterior [[2]]' – mnel

+0

또는'lapply (posterior, setNames, names)'라고 생각합니다. –

+0

Mnel, 당신의 접근 방식을 시도했지만 희미한 오류가 발생합니다. dimmames (x) [2]] <- 값 :"길이가 dimnames '[2] 배열 길이와 같지 않음" –

답변

1

당신은 어떤 lapply을 수행 할 필요가 없습니다.

names(posterior) <- votes[[1]]$legis

+0

감사합니다. 그러나 모든 mcmc 개체의 길이가 다르므로 작동하지 않습니다. df.1의 이름 열과 mcmc.1의 변수 이름을 일치시켜야합니다 (각 쌍의 길이가 일치합니다). –