Это , а не , дубликат , или , или , .
У меня есть data.table
, который выглядит примерно так:
animal_frame
first_and_last animal color
c(1, 2) dog red
c(2, 2) cat red
c(4, 2) dog green
c(3, 1) dog red
c(4, 6) pig green
c(3, 3) cat red
c(4, 2) pig red
animal_frame$num_entry = sample(1:nrow(animal_frame), nrow(animal_frame), replace=FALSE)
дает мне столбец индексации.
Здесь ось X равна num_entry
, а ось Y равна first_and_last
, что дает две точки на каждый тик по оси X. Каждая из этих точек должна быть связана с вертикальной линией согласно этому вопросу:
ggplot(data=animal_frame, aes(x=num_entry, y=first_and_last)) +
geom_line(aes(group=num_entry, color=color)) +
scale_color_manual(values = c("green"="green", "red"="red"))
Это хорошо работает. Теперь я хотел бы рассмотреть этот же график в соответствии с animal
, но мне нужен индексный столбец (начиная с 1) для каждого животного. Итак, используя dplyr
, я запускаю:
animal_frame %<>%
group_by(animal) %>%
mutate(facet_num_entry = sample(1:n(), n(), replace=FALSE)) %>%
ungroup()
Теперь я попробую:
ggplot(data=animal_frame, aes(x=facet_num_entry, y=first_and_last)) +
geom_line(aes(group=facet_num_entry, color=color)) +
scale_color_manual(values = c("green"="green", "red"="red")) +
facet_grid(animal ~ .)
Но получите geom_path: Каждая группа состоит только из одного наблюдения. Вам нужно настроить эстетику группы?
Когда я смотрю на фреймы данных, похоже, что когда я добавляю столбец num_entry
, для каждого выборочного номера есть две записи (я подозреваю, что это связано с тем фактом, что каждая запись в first_and_last
является вектором. Это соответственно дает мне два наблюдения для группировки - и, таким образом, две точки для рисования вертикальной линии между ними.) С другой стороны, когда я добавляю столбец facet_num_entry
, для каждого выборочного числа есть только одна запись. , Я думаю, что может быть что-то происходит с падением first_and_last
? Но я уже давно этим занимаюсь и не могу понять.
Кроме того, если есть более простой способ структурировать мои данные так, чтобы эти вертикальные линии были возможны, не стесняйтесь предлагать это. Я не мог найти ничего проще, чем сделать first_and_last
столбец векторов.