Lapply во вложенном списке в R - PullRequest
0 голосов
/ 14 ноября 2018

Я пытаюсь применить функцию к вложенному списку.У меня есть следующие списки:

lista_a <- list("PEC", "45", "1991")
lista_b <- list("PL", "4580", "1990")
lista_c <- list("PL", "200", "1980")

, которые вложены в следующий список:

lista_final <- list(lista_a, lista_b, lista_c)

Я хочу применить следующую функцию (которая использует функцию cham_votes из congressbr пакет):

funcao <- function(x){ tryCatch(do.call(cham_votes, x), error=function(e){NA})}

Для каждого элемента lista_final.Я пытаюсь использовать do.call, потому что cham_votes имеет три входа (тип, номер и год), и я хочу использовать их все одновременно, поэтому мне нужен список.

У вас есть какие-либоидея, как я могу применить эту функцию ко всем элементам lista_final одновременно?Окончательным результатом должен быть список данных.

Спасибо за помощь.

1 Ответ

0 голосов
/ 14 ноября 2018

Функция cham_votes() ожидает, что два последних аргумента будут целыми числами.Итак, вы должны сначала преобразовать их следующим образом:

listafinal <- lapply(listafinal, function(x) c(x[1], lapply(x[2:3], as.integer)))

Затем вам нужно просто использовать lapply.

lapply(lista_final, funcao)

Это вернет список элементов, каждый из которых имеет тот же тип, что и возвращаемое значение вашей функции funcao(), которая является либо NA, либо тибблом классов tbl, tbl_df и dataframe

...