保留具有不同名称的重复列.[R

use*_*r_n 2 r duplicates

我想保留重复的列,并删除唯一的列.列将具有相同的值,但名称不同.

x1 = rnorm(1:10)
x2 = rnorm(1:10)
x3 = x1
x4 = rnorm(1:10)
x5 = x2
x6 = rnorm(1:10)
x7 = rnorm(1:10)
df = data.frame(x1,x2,x3,x4,x5,x6,x7)
Run Code Online (Sandbox Code Playgroud)

从这里我将保留列x1,x2,x3和x5.

python还有一个类似的问题: 获取pandas中其列中具有相同值的行

the*_*ail 5

使用duplicated您的数据的转置版本,因为在默认情况下检查行,而不是列的复制功能.

df[duplicated(t(df)) | duplicated(t(df), fromLast=TRUE)]

#            x1         x2          x3         x5
#1   1.82633666  1.2271611  1.82633666  1.2271611
#2  -1.33187496  0.9654359 -1.33187496  0.9654359
#...
Run Code Online (Sandbox Code Playgroud)

作为@Frank笔记,你可以也df像对待一个listvector秒-

df[duplicated(c(df)) | duplicated(c(df), fromLast=TRUE)]
Run Code Online (Sandbox Code Playgroud)

或者您可以显式调用该array方法,指定要检查重复项的列:

df[duplicated.array(df, MARGIN=2) | duplicated.array(df, MARGIN=2, fromLast=TRUE)]
Run Code Online (Sandbox Code Playgroud)