Вызов переменной по имени - PullRequest
1 голос
/ 05 мая 2020

Итак, у меня есть функция, в которой я создаю точечные диаграммы для списка переменных. Я хотел бы назвать эти диаграммы разброса и сделать это в той же функции. Как я могу ссылаться на имя переменной при итерации по списку? Есть ли что-то вроде сюжета (секторы [[i]], l, xlab = имя (секторы [[i]]) ...

plot_correlation_index <- function(a,b,c,d,e,f,g,h,i,j,k,l){
  sectors <- list(a,b,c,d,e,f,g,h,i,j,k)
  for(i in 1:length(sectors)) {plot(sectors[[i]],l)}
}

1 Ответ

1 голос
/ 06 мая 2020

Я бы предложил что-то вроде этого. Это немного сложнее, но переход на ... позволяет использовать переменное количество аргументов, чтобы сделать вещи более гибкими. Он отобразит все аргументы, кроме последнего, по оси x и последнего по оси y.

plot_correlation_index = function(...) {
  argnames = unlist(lapply(as.list(sys.call())[-1], deparse))
  args = list(...)
  n_args = length(args)
  for (i in 1:(n_args - 1)) {
    plot(args[[i]], args[[n_args]], xlab = argnames[i], ylab = argnames[n_args])
  }
}


mats <- 1:11
fins <- 1:11 * 2
djia <- 1:11 + rnorm(11)
plot_correlation_index(mats, fins, djia)

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