大型数据框中两个变量的聚合和频率

问题描述 投票:0回答:1

我知道这可能是基本的,但我的努力一直失败。这是我的问题。

我有一个包含 50 多列的大型数据框,其中两列是“年份”和“唯一的个人标签号”。该数据框有 1000 个条目,并且大多数(但并非全部)个别数字多年来都是重复的。我需要一个语法:

  1. 删除这两列中任意一列中带有 NA 的所有行。

  2. 第一个任务:汇总每年内唯一个体数字的数量

  3. 第二个任务:对于每个单独的数字,重复它出现的年份

    dataframe = df
    year variable = YEAR
    unique individual number = IND
    
r aggregate frequency
1个回答
3
投票

在不确切知道您的输入数据是什么样子以及您想要的输出是什么的情况下,这里有一个使用一些玩具数据的潜在 tidyverse 解决方案:

library(tidyverse)
df <- data.frame(year = c(2002, 2003, 2004, 2004),
                 id = c(1, 1, 2, 3))

每年计算有多少个唯一 ID:

# number of unique IDs per year
df |> 
  group_by(year) |> 
  summarise(num_unique = n_distinct(id))

给出:

# A tibble: 3 × 2
   year num_unique
  <dbl>      <int>
1  2002          1
2  2003          1
3  2004          2

对于每个 ID,获取其出现年份的列表:

# which year does each id occur in
df |> 
  group_by(id) |> 
  summarise(years_occur = paste(sort(unique(year)), collapse=", "))

给出:

# A tibble: 3 × 2
     id years_occur
  <dbl> <chr>      
1     1 2002, 2003 
2     2 2004       
3     3 2004    
© www.soinside.com 2019 - 2024. All rights reserved.