Применение другой функции в R в цикле - PullRequest
0 голосов
/ 09 ноября 2019

Если у меня есть вектор или список. Я хотел бы применить некоторые функции к этому списку в цикле, например: найти среднее, стандартное отклонение, медиана, автокорреляционная функция и многое другое. Как передать их в качестве аргумента или применить их автоматически в цикле. Например, я имею в виду следующее:

iterative_function<- function(data, function_names)
  for (ii in 1:length(function_names)

        A=lapply(data, function_names(ii))

Эта функция должна вызываться следующим образом

iterative_function(X,c(mean,std,... act))

Это означает применение функции по одному к элементу списка.

1 Ответ

2 голосов
/ 09 ноября 2019

Мы можем зациклить каждую функцию и применить ее к каждому элементу list

#Thanks to @itslwg for simplifying the function
iterative_fun <- function(data, fun) {
   lapply(fun, function(x) sapply(data, x))
}

iterative_fun(data, c(sd, sum))
#[[1]]
#    a     b 
#1.581 2.160 

#[[2]]
# a  b 
#15 91 

данных

Пробовать на этих данных

data <- list(a = 1:5, b = 16:10)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...