r - 删除重复的列
问题描述
我有几十年的数据,我正在从年度文件和行绑定中读取这些数据。我发现有时我会得到具有重复值的列,我想删除重复的列。这必须发生在非常大的表(数百万行,数百列)上,因此进行成对检查可能不可行。
示例数据:
df <- data.frame(id = c(1:6), x = c(15, 21, 14, 21, 14, 38), y = c(36, 38, 55, 11, 5, 18), z = c(15, 21, 14, 21, 14, 38), a = c("D", "B", "A", "F", "H", "P"))
> df
id x y z a
1 1 15 36 15 D
2 2 21 38 21 B
3 3 14 55 14 A
4 4 21 11 21 F
5 5 14 5 14 H
6 6 38 18 38 P
z
是 的副本x
,因此应删除。期望的结果:
> df2
id x y a
1 1 15 36 D
2 2 21 38 B
3 3 14 55 A
4 4 21 11 F
5 5 14 5 H
6 6 38 18 P
解决方案
我们可以应用于duplicated
转置数据集并使用它来子集列
df[!duplicated(t(df))]
# id x y a
#1 1 15 36 D
#2 2 21 38 B
#3 3 14 55 A
#4 4 21 11 F
#5 5 14 5 H
#6 6 38 18 P
推荐阅读
- arrays - perl 中是否有一个函数来检查 2 个数组是否包含相同的内容(尽管不一定是相同的顺序)?
- c - 从 C 中的 GtkMenuItem 捕获关键事件
- c# - 我将如何编写正则表达式来匹配数字或字母数字单词,而不是没有数字的单词?
- python - 如何根据箱的共同条件来识别分箱事件?(scipy.binned_statistic)
- python - VS Code 自动激活虚拟环境
- python-3.x - ImportError:导入 gensim 时无法导入名称“已弃用”
- react-native - 当我在 react native 0.61+ 中添加本机库时,我应该生成本机构建吗?
- java - 将 pom 中表示的 EL 函数版本转换为属性标签中维护的 ACTUAL 值
- macos - 多个 USB 设备在 Mac OS 上显示为一个
- c# - Winforms中的消息框内的下拉/选择