我想保留重复的列,并删除唯一的列.列将具有相同的值,但名称不同.
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中其列中具有相同值的行
使用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像对待一个list的vector秒-
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)
| 归档时间: |
|
| 查看次数: |
66 次 |
| 最近记录: |