簡體   English   中英

合並R中不同數據幀中的不同列

[英]Merging different columns from different data frames in 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        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")

其次,將一個類中每個組的前兩個結果slice

library(dplyr)
df <- df %>%
      group_by(Class) %>%
      slice(2)

這是使用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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM