首页 > 解决方案 > 以正确的顺序组合

问题描述

我正在处理变量的组合。在我的模型中,组合 (A,B) 将类似于 (B,A)。我想重塑我的数据,以便以相同的顺序获得相似的组合。

我尝试使用该duplicated功能并使用该功能,paste但我没有解决问题。

这是我的第一张桌子:

df <- data.frame(V1=c("A","A","A","B","B","B"),
                 V2=c("B","C","D","A","D","A"))

这是我想要获得的:

df2 <- data.frame(V1=c("A","A","A","B","B","B"),
                  V2=c("B","C","D","A","D","A"),
                  Test=c("OK","OK","OK","FALSE","OK","FALSE"),
                  V1b=c("A","A","A","A","B","A"),
                  V2b=c("B","C","D","B","D","B"))

标签: r

解决方案


假设“正确的顺序”是字母顺序,你可以使用

alphabetical <- function(x,y){x < y}

当 x,y 按字母顺序排序时返回 true,否则返回 false。

编辑:这是一个可行的解决方案:


df_sorted <- df %>% rowwise() %>% mutate(Test = alphabetical(as.character(V1),as.character(V2))) %>% 
                 mutate(V1b = if (Test) {
                  as.character(V1)
                } else {
                  as.character(V2)
                }) %>% 
                mutate(V2b = if (Test) {
                  as.character(V2)
                } else {
                  as.character(V1)
                })

推荐阅读