как огранить несколько наборов данных с разным количеством строк - PullRequest
0 голосов
/ 11 июля 2019

Я пытаюсь построить три набора данных, которые имеют общую ось X.однако в некоторых наборах данных отсутствуют данные, поэтому они имеют разную длину.Я могу изобразить их по отдельности, но когда я пытаюсь объединить их все вместе, я получаю ошибку, что наборы данных содержат разное количество строк.Эта ошибка возникает только тогда, когда я ограждаю график (что необходимо).

Есть ли какие-либо предложения о том, как получить фасетный график для приема наборов данных с разным количеством строк?

Код iиспользуется:

ggplot()+
 geom_line(data=x,aes(x=x$BIN_START,y=x$TajimaD),size=0.6,alpha=0.65,colour="skyblue1")+
geom_line(data=y,aes(x=y$BIN_START,y=y$TajimaD),size=0.3,alpha=0.85,colour="greenyellow")+
 geom_line(data=z,aes(x=z$BIN_START,y=z$TajimaD),size=0.25,alpha=0.95,colour="black")+
  scale_x_continuous()+
  facet_grid(rows=vars(x$CHROM))+
  theme_classic()+
  ylab("TajimaD") +
  xlab("Location (bp)") 

Как было предложено в комментарии, я теперь переместил все данные в один файл и добавил столбец, чтобы указать, из какой популяции поступают данные.Я все еще получаю похожее сообщение об ошибке: "замена имеет 22588 строк, данные имеют 7537"

ggplot()+
  geom_line(data=x,aes(x=a$BIN_START,y=a$TajimaD,color=a$Population),size=0.6,alpha=0.65)+
  scale_x_continuous()+
  facet_grid(rows=vars(a$CHROM))+
  theme_classic()+
  ylab("TajimaD") +
  xlab("Location (bp)")

1 Ответ

0 голосов
/ 11 июля 2019

При второй попытке вы используете x в качестве данных, но затем используете a$BIN_START и т. Д. Весьма вероятно, что x и a имеют разное количество строк и, следовательно, ошибку. Я предлагаю полностью удалить <dataset_name>$ во всех ваших aes() вызовах, когда вы используете ggplot2. Когда вы говорите data = x, вам нужно всего лишь написать aes(x=BIN_START,y=TajimaD,color=Population) (т.е. не нужно x$).

...