Как автоматизировать создание гистограмм в R, сохранив результат в списке объектов hist ()? - PullRequest
0 голосов
/ 22 ноября 2018

У меня есть код для обработки данных, и мне нужно сохранить некоторые гистограммы, которые я буду использовать в приложении Shiny.

Что мне нужно, так это в основном автоматизировать создание гистограмм, сохраняя результат в списке объектов hist (), который я сохраню в файле RDS, а затем просто вызову в моем приложении Shiny.

Приведенный ниже код показывает желаемый результат, но имена переменных жестко запрограммированы, и это не подходит для меня.

# Create data for this example 
list_dfs <- list(
  dfA = data.frame(Var1 = rnorm(100), Date1 = rep(1:50, 2), Var2 = rnorm(100)*.55),
  dfB = data.frame(Var3 = rnorm(100), Date2 = rep(1:50, 2), Var4 = rnorm(100)*.55),
  dfC = data.frame(Var5 = rnorm(100), Date3 = rep(1:50, 2), Var6 = rnorm(100)*.55)
)

# Part that I want to automate
list_plots <- list(
  dfA = NULL,
  dfB = NULL,
  dfC = NULL
)

list_plots$dfA <- lapply(list_dfs[[1]], function(x){hist(x, plot = FALSE)})
list_plots$dfB <- lapply(list_dfs[[2]], function(x){hist(x, plot = FALSE)})
list_plots$dfC <- lapply(list_dfs[[3]], function(x){hist(x, plot = FALSE)})

# Desired output - Histograms saved in a list
list_plots$dfA$Var1 %>% plot
list_plots$dfA$Date1 %>% plot
list_plots$dfA$Var2 %>% plot

list_plots$dfB$Var3 %>% plot
list_plots$dfB$Date2 %>% plot
list_plots$dfB$Var4 %>% plot

list_plots$dfC$Var5 %>% plot
list_plots$dfC$Date3 %>% plot
list_plots$dfC$Var6 %>% plot

Заранее спасибо.

Владемир.

1 Ответ

0 голосов
/ 22 ноября 2018
res <- lapply(list_dfs, function(z){
   ll <- lapply(z, function(x){
     hist(x, plot = FALSE)
   })
   names(ll) <- names(z)
   return(ll)
})
names(res) <- names(list_dfs)

Возможно, вы не захотите изменять именование объектов по своему вкусу и не обязательно вкладывать графики.

...