#r #bar-chart #apply #var #lapply
#r #гистограмма #применить #var #lapply
Вопрос:
У меня есть кадр данных data с 40 переменными, и у меня есть функция func, которая, помимо прочего, рисует гистограмму.
func <- function(var, arg1, arg2){
# ...
barplot(table(arg1, arg2)[2,],
ylab = "Frequency",
xlab = names(var))
# ...
}
Я хочу применить эту функцию к моему фрейму данных и получить гистограмму для каждой из 40 переменных, используя имя каждой переменной, такое как xlab для каждой гистограммы. Для этого я использовал lapply, но я не могу отображать имя каждой переменной как xlab.
lapply(data, func, arg1, arg2))
Комментарии:
1. Не
lapply
поверхdata
, а поверхnames(data)
.2. @Axeman Хотя я этого не показывал, в моей функции мне нужна также информация о данных помимо имен переменных, поэтому, если я
lapply
закончуnames(data)
, я думаю, что не смогу использоватьdata
информацию.3. Используйте
subs <- data[[arg]]
или что-то подобное в верхней части вашей функции.
Ответ №1:
Я полагаю, вы ищете mapply
, который можно использовать для перебора нескольких объектов, где индексы выстраиваются в линию между объектами.
func <- function(x, name) plot(x, main = name)
mapply(FUN = func, x = iris, name = names(iris))