r - 根据另一个数据框中的数据删除行?
问题描述
我现在有一个包含超过 186k 观察(行)的数据集,如图 1 所示。这些都是 BVDID 列中的所有公司,它们应该包含 2013 年至 2017 年所有年份的数据。
missingdata <- series %>% filter(LIABILITIES == 0) %>% select(BVDID)
但是,我使用上面的代码在 missingdata 对象中发现了 87k 行只有零值。
如何删除数据框中缺少数据的带有 BVDID(公司代码)的系列对象的行?此外,应该有一种方法可以让那些年份在我的 str(series) 下看起来更好,并根据每个公司代码将它们升序排列。
最好的祝福
解决方案
方法有很多种,其中一种。
使用tidyverse
anti_join
函数,它给出的结果类似于 set 操作A-B
,因此将从第二个数据中删除所有匹配的行。
series %>% anti_join(missingdata, by =c("BVDID" = "BVDID"))
或者直接。 Liabilities == 0
将返回布尔值,+
在将这些值转换为 0 或 1 之前添加,如果大于 1,则检查这些值的总和,将其删除。
series %>% group_by(BVDID) %>% filter(sum(+(LIABILITIES == 0)) > 0)
推荐阅读
- javascript - 如何使用 chrome 扩展在 iframe 或页面中打开当前网站的控制台日志
- kubernetes - 如何解决在 k8s 上运行的 fabric peer 的高内存使用率?
- haskell - 有没有更简单的方法来编写这个函数并且只使用 Haskell 的前奏?
- azure-machine-learning-studio - 无法将训练作业安排到 Azure 机器学习 AKS 群集
- android - Google Pay - Stripe 出现错误 Google Pay 失败并出现错误:412:
- blazor - Blazor 如何使用 onClick 事件发出事件
- java - 包含 K 个不同字符的最长子串
- javascript - 反应表中日期的 GlobalFilter
- javascript - 更改时的 windows URLSearchParams
- javascript - 如何在 React 中为数据表映射颜色数组?