Распечатать гистограммы, включая имя переменной для всех переменных в R - PullRequest
0 голосов
/ 27 мая 2018

Я пытаюсь сгенерировать простую гистограмму для каждой переменной в моем фрейме данных, что я могу сделать, используя sapply ниже.Но как я могу включить имя переменной в заголовок или ось x, чтобы я знал, на какую из них я смотрю?(У меня около 20 переменных.)

Вот мой текущий код:

x = # initialize dataframe
sapply(x, hist)

Ответы [ 2 ]

0 голосов
/ 27 мая 2018

Как насчет этого?Если у вас есть широкие данные, вы можете преобразовать их в длинный формат с помощью команды buildЧем решение ggplot с geom_histogram и facet_wrap:

library(tidyverse)

# make wide data (20 columns)
df <- matrix(rnorm(1000), ncol = 20)
df <- as.data.frame(df)
colnames(df) <- LETTERS[1:20]

# transform to long format (2 columns)
df <- gather(df, key = "name", value = "value")

# plot histigrams per name
ggplot(df) +
  geom_histogram(aes(value)) +
  facet_wrap(~name, ncol = 5)

enter image description here

0 голосов
/ 27 мая 2018

Вот способ изменить существующий подход, включив имя столбца в качестве заголовка каждой гистограммы, используя в качестве примера набор данных iris:

# loop over column *names* instead of actual columns
sapply(names(iris), function(cname){
  # (make sure we only plot the numeric columns)
  if (is.numeric(iris[[cname]]))
    # use the `main` param to put column name as plot title
    print(hist(iris[[cname]], main=cname))
})

После этого вы будетевозможность пролистывать графики со стрелками на панели просмотра (при условии, что вы используете R Studio).

Вот пример выходных данных: enter image description here

пс проверить grid::grob(), gridExtra::grid.arrange() и связанные функции, если вы хотитеупорядочить гистограммы в одном окне графика и сохранить его в один файл.

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