r - 删除相同的列,同时从每个组中保留一个
问题描述
df <- data.frame(a = c(1, 2, 3, 4, 5), b = c(2, 3, 5, 6, 3), c = c(1, 2, 3, 4, 5), d = c(2, 3, 4, 4, 4), e = c(2, 3, 5, 6, 3))
a b c d e
1 2 1 2 2
2 3 2 3 3
3 5 3 4 5
4 6 4 4 6
5 3 5 4 3
我的问题很简单,但我自己无法解决。有没有一种简单的方法可以删除除一个之外的所有重复列(在每个“组”中,即在这种情况下我们有(a,c)和(b,e)组)?
我的预期输出:
a b d
1 2 2
2 3 3
3 5 4
4 6 4
5 3 4
由于由于特定情况我无法将数据框转换为矩阵,因此这必须适用于数据框,可能适用于更大容量的数据框。
解决方案
我们可以转置数据框,然后使用该duplicated
函数选择不重复的列。
df[, !duplicated(t(df))]
# a b d
# 1 1 2 2
# 2 2 3 3
# 3 3 5 4
# 4 4 6 4
# 5 5 3 4
推荐阅读
- javascript - 事件侦听器未附加?
- php - Laravel 工厂状态 - 无法找到工厂
- excel - 使用命名范围字母作为起点
- r - 区分 ggplot2 热图中组之间的分面
- c# - 使用 new 和 gcnew 创建公共 ref 类的对象
- swift - 我试图只允许 SKSpritenode 跳转一次但速度有问题
- amazon-web-services - Cloudfront 最小 TTL 有什么用?
- node.js - 具有多于一列的 Electron/Node.js 树视图
- swift - 自定义视图的 IBOutlet 为零
- swift - 如何为 UITableView (Swift) 中的每个 TextField 调用不同的函数?