所以我有一些与此相似的数据。
f1 <- data.frame(MY = c("18-1", "18-1",
"18-2", "18-2","18-2","18-2","18-2",
"18-3", "18-3","18-3"), Factor = c(1,1,1,2,3,3,2,3,1,1), More_Data = 1:10)
f1 <- f1 %>% group_by(MY) %>% mutate(ID = row_number() - 1)
MY Factor More_Data ID
<fct> <dbl> <int> <dbl>
1 18-1 1 1 0
2 18-1 1 2 1
3 18-2 1 3 0
4 18-2 2 4 1
5 18-2 3 5 2
6 18-2 3 6 3
7 18-2 2 7 4
8 18-3 3 8 0
9 18-3 1 9 1
10 18-3 1 10 2
我想基于MY选择一个ID,并在整个数据集中获取与Factor相关的所有行。
因此,如果我选择ID 1,然后它与MY 18-1相关,那么我希望通过选择因子水平来获得一个像这样的数据集。
MY Factor More_Data ID
<fct> <dbl> <int> <dbl>
1 18-1 1 1 0
2 18-1 1 2 1
3 18-2 1 3 0
9 18-3 1 9 1
10 18-3 1 10 2
请注意,无论我的身分和身分,我将所有因子都保留为1。
我的最佳尝试:
ID <- 1
f1[f1$Factor == f1$Factor[f1$ID == ID],]
MY Factor More_Data ID
<fct> <dbl> <int> <dbl>
1 18-1 1 1 0
2 18-2 1 3 0
3 18-3 1 9 1
4 18-3 1 10 2
我的真实数据集要大得多,而且这种方法甚至还没有接近。
该问题的更多背景信息:
我在shiny
中以plotly
作为链接点击来执行此操作。我也在逐帧执行此操作(MY因素)。通过链接的单击,您可以使用事件数据,并且事件数据可以给出框架中该点的月份和年份的所有点,然后单击一个点并将其与我创建的ID列关联,如果选择该ID,则可以关联到我想要的因素。问题是,如果绘图点与1相关,则我的代码然后不仅在该帧上查询ID中的全1,而且还将与最后1个相关的所有因素相关。