ggplot, построить подмножество данных, ОШИБКА

У меня, казалось бы, простой вопрос, который, тем не менее, я не смог решить. Я хотел бы построить только часть data.frame в ggplot, но все время получаю сообщение об ошибке. Вот мой код, который работает (с полным набором данных):

ggplot(a2.25, aes(x=V1, y=V2)) + geom_point() +
  theme(plot.margin = unit(c(0,0,0,0), "lines"),
        plot.background = element_blank(),
        axis.title.y = element_blank(),
        axis.title.x = element_blank()) +
  ggtitle("a2_25")

Но когда я пытаюсь построить только часть данных с помощью:

ggplot(a2.25, aes(x=V1[2:24], y=V2[2:24])) + geom_point() +
  theme(plot.margin = unit(c(0,0,0,0), "lines"),
        plot.background = element_blank(),
        axis.title.y = element_blank(),
        axis.title.x = element_blank()) +
  ggtitle("a2_25")

Я получаю следующее сообщение об ошибке: «Ошибка в data.frame (x = c (0,04, 0,08, 0,12, 0,16, 0,2, 0,24, 0,28, 0,32,: аргументы подразумевают разное количество строк: 23, 26»). Однако файл состоит из 26 наблюдений по 2 переменным.Когда я исследую длину каждого столбца в отдельности, в каждом есть 26 наблюдений.

Кто-нибудь знает, что вызывает эту ошибку / простой способ ее преодолеть? Я провожу исследовательский анализ своих данных, у меня есть множество файлов, и я буду конвертировать туда и обратно между полным набором данных и его подмножествами, поэтому было бы очень утомительно сокращать файлы вручную.

Спасибо!

Вот образцы данных (dput):

structure(list(V1 = c(0, 0.04, 0.08, 0.12, 0.16, 0.2, 0.24, 0.28, 
0.32, 0.36, 0.4, 0.44, 0.48, 0.52, 0.56, 0.6, 0.64, 0.68, 0.72, 
0.76, 0.8, 0.84, 0.88, 0.92, 0.96, 1), V2 = c(0.9999396, 1.828642e-05, 
2.125182e-05, 1.369786e-05, 6.395666e-06, 7.471323e-07, 9.306843e-09, 
1.025577e-11, 1.225776e-15, 2.306844e-20, 1.021365e-25, 1.41806e-31, 
6.450008e-38, 7.751817e-45, 1.698149e-52, 4.40356e-61, 8.356799e-71, 
6.445585e-82, 9.108883e-95, 7.374944e-110, 5.603281e-128, 1.908444e-150, 
9.635286e-180, 1.938155e-221, 2.781784e-293, 0)), .Names = c("V1", 
"V2"), class = "data.frame", row.names = c(NA, -26L))

person ONeillMB1    schedule 17.07.2013    source источник
comment
Подмножество аргумента .data, а не aes: ggplot(a2.25[2:24,], ...   -  person Justin    schedule 17.07.2013


Ответы (2)


Если вам нужно подмножество данных, это следует сделать с фреймом данных a2.25, а не столбцами внутри aes().

ggplot(a2.25[2:24,], aes(x=V1, y=V2)) + geom_point()
person Didzis Elferts    schedule 17.07.2013
comment
Спасибо! Я новичок в ggplot и не понимал, что мне нужно подмножество данных, а не переменных. - person ONeillMB1; 17.07.2013
comment
простой и эффективный способ разбиения данных на подмножества, спасибо! (давно это искал!) - person Ben G Small; 04.07.2017

Я предполагаю, a2.25 это имя вашего набора данных?

Попробуйте разделить данные вместо отдельных переменных.

Например, для строк 2:24 попробуйте

ggplot(a2.25[2:24,], aes(x=V1, y=V2)) + geom_point() +
  theme(plot.margin = unit(c(0,0,0,0), "lines"),
        plot.background = element_blank(),
        axis.title.y = element_blank(),
        axis.title.x = element_blank()) +
  ggtitle("a2_25")
person ialm    schedule 17.07.2013
comment
Большое спасибо! Я новичок в ggplot и не понимал, что мне нужно подмножество данных, а не переменных. - person ONeillMB1; 17.07.2013