tro*_*000 2 r subset dataframe
我正在尝试从包含 2 列组合的数据框中删除行。例如,以下代码:
vct <- c("A", "B", "C")
a <- b <- vct
combo <- expand.grid(a,b) #generate all posible combinations
combo <- combo[!combo[,1] == combo[,2],] #removes rows with matching column
Run Code Online (Sandbox Code Playgroud)
生成此数据框:
Var1 Var2
2 B A
3 C A
4 A B
6 C B
7 A C
8 B C
Run Code Online (Sandbox Code Playgroud)
如何删除行是 2 列的任意组合的重复项,以便删除 ie #4 AB 因为 #2 BA 已经存在?生成的数据框如下所示:
Var1 Var2
2 B A
3 C A
4 C B
Run Code Online (Sandbox Code Playgroud)
我们可以sort通过row使用applywith MARGIN=1、转置 ( t) 输出, useduplicated获取重复行的逻辑索引, negate ( !) 获取不重复的行,并对数据集进行子集化。
combo[!duplicated(t(apply(combo, 1, sort))),]
# Var1 Var2
#2 B A
#3 C A
#6 C B
Run Code Online (Sandbox Code Playgroud)