首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于筛选大型数据集的问题

关于筛选大型数据集的问题
EN

Stack Overflow用户
提问于 2019-09-26 08:00:33
回答 1查看 82关注 0票数 2

在这里的问题中,我有一个可以追溯到1880年的流行婴儿名字的数据集。我正在努力寻找永恒流行的婴儿名字,这意味着在我的数据中,每年都有30个最常见的性别名称。

我尝试过使用group_by、top_n和filter,但我对这个程序还不是很熟悉,所以不确定这里的正确顺序和思路。

代码语言:javascript
复制
library(babynames)

timeless <- babynames %>% group_by(name, sex, year) %>% top_n(30) %>% filter()

我正在得到一个大型数据表,其中包含每年数据的30个最常见的名称,但我希望通过比较它们来找到每年最常见的名称。我的教授暗示应该有四个永恒的男孩名字和一个永恒的女孩名字。如有任何帮助,我们不胜感激!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-26 08:27:34

这就是答案。

代码语言:javascript
复制
library(babynames)
library(dplyr)

timeless <- babynames %>% 
  group_by(sex, year) %>% 
  top_n(30) %>%
  ungroup() %>%
  count(sex, name) %>%
  filter(n == max(babynames$year) - min(babynames$year) + 1)

timeless
# # A tibble: 5 x 3
#   sex   name          n
#   <chr> <chr>     <int>
# 1 F     Elizabeth   138
# 2 M     James       138
# 3 M     John        138
# 4 M     Joseph      138
# 5 M     William     138

关于您的原始代码,group_by(name, sex, year) %>% top_n(30)没有意义,因为namesexyear的所有组合都是唯一的,因此没有什么可以让您筛选出“前30名”。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58107908

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档