【发布时间】:2020-04-20 10:32:22
【问题描述】:
我有一个大约 250K obs 的大型 DF。以及关于人们毕业数据的 19 个变量。人们多次在DF中。我需要制作两个新的 DF,其中每个人每个 DF 只出现一次(ID)。我真正的 DF 有更多列,但例如我取出了 3 个需要的列和 2 个作为我的 DF 中其他背景信息的示例。
ID - 个人的唯一 ID
Level - 显示教育水平。数字越大越好:示例 8 = 博士,7 = 硕士
年份 - 毕业年份
Field - 研究领域的背景信息。我们需要保留这些数据。
性别 - 人的性别。我们需要保留这些数据。
原版 DF 命名为“Graduations” ID 级别 年份 字段 性别 1 4 2016 31 百万 1 5 2016 43 百万 2 6 2010 12 楼 2 7 2012 12 楼 2 8 2017 19 楼 3 5 2011 12 楼 3 5 2009 31 女 4 6 2018 43 百万 4 6 2018 44 百万 5 5 2015 19 万 5 6 2011 32 M
DF 1 被命名为“最高”,意思是最高等级的毕业。在这个 DF 中,我们只保留该人已达到最高教育水平的行。如果一个人达到它的次数超过一次,那么我们保留最高和最新毕业的那一行,如果两者都是平局,那么我们随机选择一个。
“最高” ID 级别 年份 字段 性别 1 5 2016 43 M(保留行,因为它是最高级别) 2 8 2017 19 F(保留行,因为它是最高级别) 3 5 2011 12 F(保留行,因为它是最高级别和最新的) 4 6 2018 43 M(随机选择的行) 5 6 2011 32 M(行保留,因为它是最高级别)
DF 2 被命名为“Last”,意思是最后获得的毕业级别。在这个 DF 中,我们只保留最新数据的行。如果一个人每年毕业一次以上,那么我们选择最高级别,如果那也是一个平局,然后随机(不需要与 DF1 中相同的随机行)
"最后" ID 级别 年份 字段 性别 1 5 2016 43 M(保留行,因为它是最新和最高级别) 2 8 2017 19 F(保留行,因为它是最新的) 3 5 2011 12 F(保留行,因为它是最新的) 4 6 2018 44 M(随机选择的行) 5 5 2015 19 M(保留行,因为它是最新的)
我试图在 stackoverflow 上搜索它,但没有找到我要找的东西。我可能使用了错误的关键字。
我更喜欢基本的 R 函数,但如果需要,最常见的包也可以。这是因为此 DF 位于安全计算机上,并且安装不常见的软件包需要很长时间,因为我必须提出请求。最常见的已经安装了。
感谢您的帮助。
【问题讨论】: