Барплот в петле - PullRequest
       4

Барплот в петле

1 голос
/ 02 июня 2019

У меня есть такие данные:

groups = c(1,1,2,2,3,3)

var1 = c(2,3,4,4,6,8)

dat = data.frame(groups, var1)

Для каждого значения в groups я хочу построить гистограмму var1.Итак, я ожидаю 3 гистограммы с 2 записями var1.

Я пробовал цикл:

for (i in unique(dat$groups)) {
  hist(dat$var1)
}

Однако он отображает все записи в var1, а не только значения, которые встречаются вместе с каждой группой.

Ответы [ 2 ]

1 голос
/ 02 июня 2019

Возможным решением является split данные с помощью groups и lapply функции hist для каждого субкадра.

subdf_list <- split(dat, dat$groups)
h_list <- lapply(subdf_list, function(DF) {
  x11()
  hist(DF[['var1']])
})
1 голос
/ 02 июня 2019

Если вы придерживаетесь циклического подхода, вам нужно вручную установить подмножество данных

hist(subset(dat, groups == i)$var1)

Или же вы можете использовать ggplot2 для цели, которая имеет лучшую функциональность и обеспечивает лучший внешний вид.Я могу просто дать вам код, но если вы новичок в R, я предлагаю вам потратить некоторое время на основы ggplot.Или код просто будет выглядеть как магия

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