Применить функцию над вложенным списком с несколькими переменными с помощью lapply - PullRequest
0 голосов
/ 07 мая 2019

У меня есть функция, которая принимает форму

myfun<-function(Year, ID, Species, Abundance, resamps) {do something}

«resamps» означает повторную выборку, и она занимает одно число (например, 20)

У меня не было проблем с применением функции к фрейму данных, так как он принимает данные в виде:

<-myfun(mydata$Year, mydata$Bay, mydata$Species, mydata$Abundance, 20)

Мне нужно применить эту функцию к списку со следующей структурой

 $ TX_ARAB:Classes ‘tbl_df’, ‘tbl’ and 'data.frame':    308670 obs. of  4 variables:
  ..$ Year     : chr [1:308670] "1982" "1982" "1982" "1982" ...
  ..$ Bay      : chr [1:308670] "TX_ARAB" "TX_ARAB" "TX_ARAB" "TX_ARAB" ...
  ..$ Species  : chr [1:308670] "Anchoa mitchilli" "Brevoortia patronus" "Dorosoma cepedianum" "Leiostomus xanthurus" ...
  ..$ Abundance: num [1:308670] 1 243 1 24 3 6 26 6 1 1 ...
 $ TX_COCB:Classes ‘tbl_df’, ‘tbl’ and 'data.frame':    344467 obs. of  4 variables:
  ..$ Year     : chr [1:344467] "1982" "1982" "1982" "1982" ...
  ..$ Bay      : chr [1:344467] "TX_COCB" "TX_COCB" "TX_COCB" "TX_COCB" ...
  ..$ Species  : chr [1:344467] "Anchoa mitchilli" "Micropogonias undulatus" "Ariopsis felis" "Archosargus probatocephalus" ...
  ..$ Abundance: num [1:344467] 6 17 10 1 16 3 2 42 1 11 ...

Не удивительно, что это не сработало, когда я это сделал

d = lapply(mylist, myfun, resamps = 20)

Я не знаю, как заставить функцию соответствующим образом использовать соответствующий объект в списке, учитывая, что мне пришлось передавать имя данных вместе с объектами, когда оно было применено к фрейму данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...