我有一个数据表列表(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