r - 选择在 R 中使用 distinct 函数时要保留的行
问题描述
我有一个看起来像这样的数据框:
company eh
1 A 1
2 A 3
3 B 2
4 C 2
5 C 1
6 D 3
7 E 1
8 F 3
9 F 1
如您所见,我有重复的公司 A、C 和 F 行。这是因为有些公司可以在 'eh' 列中同时采用值 1、2 和 3。我想最终每家公司只有一行,所以我运行以下代码:
df <- distinct(df, company, .keep_all = TRUE)
结果是:
company eh
1 A 1
2 B 2
3 C 2
4 D 3
5 E 1
6 F 3
但是,这会从“eh”列中删除随机行。但是我想要的 'eh' 列是保持值 1 超过 2 和 3。换句话说,如果公司的 'eh' 值同时采用 1 和 3,我宁愿保留值为 1 的行。所以我想得到这样的结果(删除第 2、4 和 8 行):
company eh
1 A 1
2 B 2
3 C 1
4 D 3
5 E 1
6 F 1
我怎样才能做到这一点?
解决方案
中base R
,我们可以做
dat1 <- dat[order(dat$company, dat$eh),]
dat1[!duplicated(dat1$company),]
推荐阅读
- r - Rshiny中的ggplot dateRangeInput
- php - 关于php中的if语句
- python - 通过比较前几行的日期并扩展间隔来扩展python中的时间序列数据集
- sql - 使用 Join 使用另一列中的数据更新表中的列
- linux - 在 1 个 io_submit 调用中的 N 个请求中排序
- javascript - 我不知道为什么我的控制台总是输出相同的东西
- amazon-web-services - 无法在 centos 7 上删除 CodeDeploy 代理
- python - 如何获取多输出模型的类激活图?
- python - 获取 www 子域或特定域的 cookie?
- ios - LineChartView chartViewDidEndPanning 和 chartValueNothingSelected 没有被调用,而 chartValueSelected 被完美调用