查找 R 数据框列值的唯一对组合。
要找到R数据框列值的唯一对组合,我们可以使用combn函数和unique函数。
例如,如果我们有一个名为df的数据框,其中包含一个列x,那么我们可以使用下面给出的命令找到所有列值的唯一对组合-
combn(unique(df$x),2,FUN=paste,collapse=' ')
示例1
以下代码段创建了一个示例数据框-
Grp<-sample(c("I","II","III"),20,replace=TRUE) df1<-data.frame(Grp) df1
创建了以下数据框
Grp 1 II 2 III 3 I 4 I 5 II 6 I 7 II 8 III 9 III 10 I 11 I 12 I 13 I 14 II 15 III 16 II 17 I 18 II 19 II 20 III
要在上面创建的数据框上为df1的Grp列中的值找到唯一的对组合,请将以下代码添加到上面的代码段中-
Grp<-sample(c("I","II","III"),20,replace=TRUE) df1<-data.frame(Grp) combn(unique(df1$Grp),2,FUN=paste,collapse=' ')输出结果
如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出-
[1] "II III" "II I" "III I"
示例2
以下代码段创建了一个示例数据框-
Class<-sample(c("First","Second","Third","Fourth","Fifth"),20,replace=TRUE) df2<-data.frame(Class) df2
创建了以下数据框
Class 1 Second 2 Fourth 3 Fourth 4 Second 5 Fourth 6 Third 7 Fourth 8 Third 9 First 10 Fifth 11 Second 12 Second 13 Third 14 Second 15 First 16 Second 17 Fourth 18 First 19 Fifth 20 First
要在上面创建的数据框中的df2列中查找值的唯一对组合,请将以下代码添加到上面的代码段中-
Class<-sample(c("First","Second","Third","Fourth","Fifth"),20,replace=TRUE) df2<-data.frame(Class) combn(unique(df2$Class),2,FUN=paste,collapse=' ')输出结果
如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出-
[1] "Second Fourth" "Second Third" "Second First" "Second Fifth" [5] "Fourth Third" "Fourth First" "Fourth Fifth" "Third First" [9] "Third Fifth" "First Fifth"
示例3
以下代码段创建了一个示例数据框-
Category<-sample(c("Extra Small","Small","Medium","Large","Extra Large"),20,replace=TRUE) df3<-data.frame(Category) df3
创建了以下数据框
Category 1 Large 2 Extra Small 3 Extra Small 4 Small 5 Large 6 Extra Small 7 Medium 8 Large 9 Large 10 Extra Large 11 Extra Small 12 Extra Small 13 Extra Small 14 Extra Large 15 Large 16 Extra Small 17 Large 18 Medium 19 Extra Large 20 Extra Large
要在上面创建的数据框中的df3列Category中查找值的唯一对组合,请将以下代码添加到上面的代码段中-
Category<-sample(c("Extra Small","Small","Medium","Large","Extra Large"),20,replace=TRUE) df3<-data.frame(Category) combn(unique(df3$Category),2,FUN=paste,collapse=' ')输出结果
如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出-
[1] "Large Extra Small" "Large Small" [3] "Large Medium" "Large Extra Large" [5] "Extra Small Small" "Extra Small Medium" [7] "Extra Small Extra Large" "Small Medium" [9] "Small Extra Large" "Medium Extra Large"