2013-03-07 6 views
0

Возможно, кто-то здесь с большим опытом работы с mcmc-объектами может мне помочь.Назначение имен переменных в список объектов mcmc

Задача: У меня есть список с 20+ mcmc-объектами. Мне нужно назначить имена переменных для каждого из объектов mcmc.

У меня есть другой список со всеми именами переменных для каждого mcmc, который хранится (как столбцы в dataframes).

я могу сделать это в индивидуальном порядке, с помощью «имени переменной» функции из пакета Coda, как это:

Будучи «голоса» мой список 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 (задняя, ​​функция (х) имени переменной (х) <- имена)' должны работать, иначе вы индексировать '' posterior' по x', когда х уже 'задний [[1 ]] 'или posterior [[2]]' – mnel

+0

или 'lapply (posterior, setNames, names)', я думаю. –

+0

Mnel, я пробовал ваш подход, но я получаю тусклую ошибку. Ошибка в dimnames (x) [[2]] <- значение: «длина« dimnames »[2] не равна размеру массива» –

ответ

1

Вам не нужно делать какие-либо lapply.

попробовать names(posterior) <- votes[[1]]$legis

+0

Спасибо, но это не работает, так как все объекты mcmc имеют разные длины. Мне нужно сопоставить столбец имен df.1 с переменными именами mcmc.1 (длины каждой пары совпадают). –

Смежные вопросы