gpt4 book ai didi

r - 如何从数据框中删除具有相同值的重复列

转载 作者:行者123 更新时间:2023-12-01 22:57:35 24 4
gpt4 key购买 nike

我有这样一个数据框:

1    1    1    a    1    a    
2 1 2 b 1 b
3 8 3 b 1 b
4 8 4 k 1 k
1 1 1 t 1 t
2 1 2 t 1 t

我想删除具有相同值的重复列,即第 3 列与第 1 列重复,所以我想删除第 3 列或第 1 列中的一个,而第 6 列与第 4 列重复,所以我想删除其中一个第 6 列或第 4 列。我有非常大的数据,有 800 列,列名称如 a1、a2、a3....a800。

所以我的结果会是这样

1    1    a    1       
2 1 b 1
3 8 b 1
4 8 k 1
1 1 t 1
2 1 t 1

如果有人能帮助我完成这项任务,那就太好了。

感谢您的所有回复。我将尝试这些代码,如果我在 SAS 和 R 中得到任何等效代码,那就太好了。

最佳答案

也许其中一个对您有用:

创建一个标识重复列的逻辑向量。

猜测 paste 方法可能会更快...,但是在转置的 data.frame 上duplicated 可能更可靠....

Dups1 <- duplicated(lapply(mydf, paste, collapse = ""))
Dups2 <- duplicated(t(mydf))

Dups1
# [1] FALSE FALSE TRUE FALSE FALSE TRUE

Dups2
# [1] FALSE FALSE TRUE FALSE FALSE TRUE

使用这些逻辑向量中的任何一个来获取您想要的列。

mydf[!Dups1]
V1 V2 V4 V5
1 1 1 a 1
2 2 1 b 1
3 3 8 b 1
4 4 8 k 1
5 1 1 t 1
6 2 1 t 1

关于r - 如何从数据框中删除具有相同值的重复列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21800195/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com