Для цикла, чтобы построить серию боксов рядом - PullRequest
0 голосов
/ 27 ноября 2018

У меня есть фрейм данных с тремя переменными:

df <- data.frame(
  level = rep(c(2,2,1,1,0,0),3),
  names = c(rep("name1",6),rep("name2",6),rep("name3",6)),
  values = c(rnorm(6)-1, rnorm(6), rnorm(6)+1)
)

Теперь я бы хотел построить для каждого уровня в df$names распределение df$values по df$level в цикле for,В то время как этот цикл for отображает желаемые блокпосты, он выводит их все в одном кадре, а не, как и ожидалось, бок о бок:

for(i in unique(df$names)){
  par(new=T)
  boxplot(df[df$names==i,]$values ~ df[df$names==i,]$level)
}

Как изменить код так, чтобы блокпосты длякаждый df$names показан рядом?

Ответы [ 2 ]

0 голосов
/ 27 ноября 2018

Использование ggplot2 :

library(ggplot2)

ggplot(df, aes(as.factor(level), values)) +
  geom_boxplot() +
  facet_grid(.~names)

enter image description here

0 голосов
/ 27 ноября 2018

Ты очень близко

par(mfrow=c(1,3))

for(i in unique(df$names)){
  boxplot(df[df$names==i,]$values ~ df[df$names==i,]$level)
}

enter image description here

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