You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于nquest和nord两列查找重复观测并统计个体多tpens值

问题解决:基于家庭编码与身份标识统计个体重复观测及多收入值情况

数据集样本

> head(dataset, 20)
   nquest nord tpens
1     173    1  1800
2     633    1   300
3     633    1   600
4     923    1   500
5    2886    1  1211
6    2886    2  2100
7    5416    1   700
8    7886    1  1800
9    7886    1   200
10  20297    1  1200
11  20711    2  2000
12  22169    1   600
13  22169    1   280
14  22173    2  1000
15  22276    1  1200
16  22286    1   850
17  22286    2   650
18  22657    1  1400
19  22657    2  1500
20  23490    1  1400

变量说明

  • nquest:个体所属家庭的编码
  • nord:个体在家庭中的身份(1=丈夫,2=妻子,3=子女等)
  • tpens:个体的收入

需求与问题

需要完成两个任务:

  1. 找出由nquest和nord共同标识的个体中,存在多个不同tpens值的记录
  2. 统计每个个体对应的观测数量

之前尝试的代码逻辑错误,dataset$nquest & dataset$nord是对两列做逻辑与运算,而非将两列作为组合键判断重复,所以无法得到正确结果:

dim(dataset[duplicated(dataset$nquest & dataset$nord),])[1]
sum(duplicated(dataset$nquest & dataset$nord))

解决方法

方法一:Base R原生实现

1. 统计每个个体的观测数量

用aggregate函数按nquest和nord分组统计:

# 统计每个个体的观测数
obs_count <- aggregate(tpens ~ nquest + nord, data = dataset, FUN = length)
# 重命名列名更清晰
colnames(obs_count) <- c("nquest", "nord", "observation_count")

2. 识别存在多个不同tpens值的个体

通过分组计算去重后的tpens数量,筛选出数量大于1的个体:

# 计算每个个体的不同tpens值数量
unique_tpens_count <- aggregate(tpens ~ nquest + nord, data = dataset, FUN = function(x) length(unique(x)))
colnames(unique_tpens_count) <- c("nquest", "nord", "unique_tpens_count")

# 筛选有多个不同收入值的个体
multiple_tpens_individuals <- subset(unique_tpens_count, unique_tpens_count > 1)

3. 合并结果(可选)

把观测数和收入值数合并,同时标记是否存在多收入值:

result <- merge(obs_count, unique_tpens_count, by = c("nquest", "nord"))
result$has_multiple_tpens <- result$unique_tpens_count > 1

方法二:dplyr包实现(更简洁)

如果熟悉tidyverse语法,用dplyr的分组汇总操作更高效:

library(dplyr)

# 一步完成分组统计与标记
result <- dataset %>%
  group_by(nquest, nord) %>%
  summarise(
    observation_count = n(),
    unique_tpens_count = n_distinct(tpens),
    has_multiple_tpens = unique_tpens_count > 1
  ) %>%
  ungroup()

# 查看有多个不同tpens值的个体
filter(result, has_multiple_tpens)

内容的提问来源于stack exchange,提问作者io_boh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 19:35:01