在R中合并来自不同数据帧的不同列
我有以下两个数据帧: 数据帧1:在R中合并来自不同数据帧的不同列,r,R,我有以下两个数据帧: 数据帧1: Class Total AC A 1000 0.6 A 965 0.34 B 1025 0.9 B 1002 0.37 B 684 0.55 C 896 0.77 C 927 0.86 C 1000 0.61 C
Class Total AC
A 1000 0.6
A 965 0.34
B 1025 0.9
B 1002 0.37
B 684 0.55
C 896 0.77
C 927 0.86
C 1000 0.61
C 955 0.69
数据帧2:
Class Total Coverage
A 925 0.6
A 744 0.94
A 1000 0.38
B 581 0.68
B 488 0.25
B 698 0.66
C 1020 0.33
C 845 0.18
C 1555 0.66
我只想从数据框2中获取每个类的前两行的AC
值,以及从数据框1中获取同一类的前两行的Coverage
值,并将它们组合在一起,如下所示:
Class AC Coverage
A 0.6 0.6
A 0.34 0.94
B 0.9 0.68
B 0.37 0.25
C 0.77 0.33
C 0.86 0.18
请注意,始终保证在两个数据帧中每个类至少有两行
你知道我怎么做吗?这样行吗
首先将两个数据帧合并在一起
df <- merge(df1$AC, df2$Coverage, by = "Class")
这样行吗
首先将两个数据帧合并在一起
df <- merge(df1$AC, df2$Coverage, by = "Class")
这里有一种使用dplyr的方法-
df1 %>%
group_by(Class) %>%
mutate(rn = row_number()) %>%
ungroup() %>%
filter(rn %in% 1:2) %>%
inner_join(
df2 %>%
group_by(Class) %>%
mutate(rn = row_number()) %>%
ungroup() %>%
filter(rn %in% 1:2),
by = c("Class", "rn")
) %>%
select(Class, AC, Coverage)
这里有一种使用dplyr的方法-
df1 %>%
group_by(Class) %>%
mutate(rn = row_number()) %>%
ungroup() %>%
filter(rn %in% 1:2) %>%
inner_join(
df2 %>%
group_by(Class) %>%
mutate(rn = row_number()) %>%
ungroup() %>%
filter(rn %in% 1:2),
by = c("Class", "rn")
) %>%
select(Class, AC, Coverage)