0

我有一个数据表列表(df 1 和 df2)。我想知道如何根据数据表中的类型和区域信息修复排序。例如,df1$type 有 3 行,df2$type 有 4 行,其中 Bg 是公共元素。为了避免这种混淆,我试图为每个表分配一个带有新列的预定义组。与每种类型中的其他可用元素相比,预定义组 G1 和 G2 具有更大的面积。所以我想知道1)如果有1-2种类型的overalp,最好的方法是分开组2)我如何检查预定义组的区域是否高于每个表中的其他类型元素.

    df1<- data.frame(
          No=c(3, 3, 3),
          Type=c("Bg", "Ea", "Xg"), 
          Area=c(19, 5, 4)) 
    df2 <- data.frame(
         No=c(4, 4, 4, 4),
         Type=c("Bg", "Ra","Rm","Xg"), 
         Area=c(1, 10,  1, 20)) 
  # list of diffrent tables 
       df.table <- list(df1,df2) # list of tables 
        G1 <- c("Bg", "Ea", "Xg")
        G2 <- c("Ra","Xg")
 I tried 
       for (j in 1:length(df.table )){
           grp <- as.data.frame(df.table[[j]])
           plot<- grp %>% mutate(Group=
                           case_when((Type %in% G1)&&(Area[(Type == G1)>(Type != G1)])~"G1"
                                    ,(Type %in% G2)&&(Area[(Type == G2)>(Type!= G2)])~"G2" 
                                    ,TRUE ~ "Other"
                               ))
          print(plot)                                                                  
         }

但是,我在下面得到一个输出。对于第 4 组,该组应为 G2。

            No Type Area Group
            3   Bg   19    G1
            3   Ea    5    G1
            3   Xg    4    G1
            No Type Area Group
            4   Bg    1    G1
            4   Ra   10    G1
            4   Rm    1    G1
            4   Xg   20    G1
Expected output 
            No Type Area Group
            3   Bg   19    G1
            3   Ea    5    G1
            3   Xg    4    G1
            No Type Area Group
            4   Bg    1    G2
            4   Ra   10    G2
            4   Rm    1    G2
            4   Xg   20    G2
     Thanks 
4

0 回答 0