Назначьте имена переменных списку объектов mcmc

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

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

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

Я могу сделать это индивидуально, используя функцию "varnames" из пакета coda, например:

Я "голосую" за мой список фреймов данных и "апостериорный" за мой список объектов 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. Я пробовал несколько вариантов этой строки, но мне трудно понять, как правильно ее проиндексировать или как вообще делать то, что я хочу.

Я знаю, что это какая-то конкретная проблема, но, может быть, кто-нибудь здесь может мне подсказать или что-то в этом роде.

Заранее спасибо за помощь. Извините, я не могу предоставить некоторые данные, но получить работоспособные образцы этого довольно сложно.

С уважением, Федерико


person Federico C    schedule 07.03.2013    source источник
comment
lapply(posterior, function(x) varnames(x) <- names) должен работать, иначе вы индексируете posterior по x, когда x уже posterior[[1]] или апостериорный [[2]] `   -  person mnel    schedule 07.03.2013
comment
или lapply(posterior, setNames, names), я думаю.   -  person Ben Bolker    schedule 07.03.2013
comment
Мнел, я пробовал ваш подход, но получаю тусклую ошибку. Ошибка в dimnames (x) [[2]] ‹- значение: длина dimnames [2] не равна экстенту массива   -  person Federico C    schedule 08.03.2013


Ответы (1)


Тебе не нужно делать лаппи.

попробуйте names(posterior) <- votes[[1]]$legis

person CHP    schedule 07.03.2013
comment
Спасибо, но это не работает, поскольку все объекты mcmc имеют разную длину. Мне нужно сопоставить столбец имен df.1 с различными именами mcmc.1 (длины каждой пары совпадают). - person Federico C; 08.03.2013