R:rbind 按 ID 排序的两个数据帧
R: rbind two dataframes ordered by ID
所以我在通过行绑定原始数据集的两个“子集”来创建新数据集时遇到了一些麻烦。我已经实现了以下代码,并且运行良好。但是,它将第二个“子集”的行添加到第一个“子集”的行下方,并且不考虑 ID。
rbind(df %>%
group_by(ID) %>%
filter(Var1 >=
((max(Var1)/100)*95)),
V_Dem_tracker_autocracies %>%
group_by(ID) %>%
filter(first_equal_to(Var2, 1)))
所以我得到的数据结构如下:
ID Var2
1 0
1 0
1 0
2 0
2 0
2 0
1 1
2 1
但是我想要这样:
ID Var2
1 0
1 0
1 0
1 1
2 0
2 0
2 0
2 1
有没有简单的解决方案?感谢所有回答!
您可以将 arrange() 附加到管道以包装新的绑定数据框。
rbind(df %>%
group_by(ID) %>%
filter(Var1 >= ((max(Var1)/100)*95)),
V_Dem_tracker_autocracies %>%
group_by(ID) %>%
filter(first_equal_to(Var2, 1))) %>%
arrange(ID)
如果顺序不对,可以使用desc(ID)。
所以我在通过行绑定原始数据集的两个“子集”来创建新数据集时遇到了一些麻烦。我已经实现了以下代码,并且运行良好。但是,它将第二个“子集”的行添加到第一个“子集”的行下方,并且不考虑 ID。
rbind(df %>%
group_by(ID) %>%
filter(Var1 >=
((max(Var1)/100)*95)),
V_Dem_tracker_autocracies %>%
group_by(ID) %>%
filter(first_equal_to(Var2, 1)))
所以我得到的数据结构如下:
ID Var2
1 0
1 0
1 0
2 0
2 0
2 0
1 1
2 1
但是我想要这样:
ID Var2
1 0
1 0
1 0
1 1
2 0
2 0
2 0
2 1
有没有简单的解决方案?感谢所有回答!
您可以将 arrange() 附加到管道以包装新的绑定数据框。
rbind(df %>%
group_by(ID) %>%
filter(Var1 >= ((max(Var1)/100)*95)),
V_Dem_tracker_autocracies %>%
group_by(ID) %>%
filter(first_equal_to(Var2, 1))) %>%
arrange(ID)
如果顺序不对,可以使用desc(ID)。