У меня есть один df с начальными точками для 2 групп, а другой с конечными точками для тех же групп.Я хочу сделать рисование линий ggplot от начала группы 1 до всех концов группы 1, которые удовлетворяют условию, и от начала группы 2 до всех концов группы 2, которые удовлетворяют условию, но я не знаю, что нужно geom_использовать, чтобы сделать это, если я могу сделать это из двух разных фреймов данных, как я пытаюсь.
# start coordinates:
set.seed(5)
start <- data.frame(matrix(nrow=2,ncol=3))
colnames(start) <- c("group","X","Y")
start$group <- c(1,2)
start$X <- c(5,10)
start$Y <- c(5,10)
# end coordinates:
df <- data.frame(matrix(nrow = 20,ncol=4))
colnames(df) <- c("group","X","Y","condition")
df$group <- rep(c(1,2),each=10)
df$X <- runif(20,0,20)
df$Y <- runif(20,0,20)
df$condition <- c("n","n","n","y","n",
"y","n","n","y","y",
"y","n","n","y","n",
"y","y","y","n","y")
# plot data
library(ggplot2)
ggplot(data=df,aes(x=X,y=Y,color=group))+
geom_point(aes(shape=condition))+
geom_point(data=start,aes(x=X,y=Y),size=2)
Я хочу, чтобы все линии выходили из начальной точки только в конечные точки "условие = да" для каждой группы.График будет выглядеть как две перекрывающиеся звезды, но я не могу понять, как вызывать два кадра данных в одной команде geom_.Вот что я попробовал до сих пор.
ggplot(data=df,aes(x=X,y=Y,color=group))+
geom_point(aes(shape=condition))+
geom_point(data=start,aes(x=X,y=Y),size=2)+
geom_segment(aes(x=start$X,
y=start$Y,
xend=df$X[df$condition=="y"],
yend=df$Y[df$condition=="y"],
group=group))
Но это не сработало.Не уверен, что geom_segment - это то, что я должен использовать в любом случае.