首页 > 解决方案 > 当受访者编号在列中重复时,对数据框的行进行子集化

问题描述

我有一个巨大的数据集,部分是汇集横截面,部分是面板数据:

  Year      Country Respnr Power          Nr
1 2000      France  1      1213           1  
2 2001      France  2      1234           2
3 2000      UK      3      1726           3
4 2001      UK      3      6433           4

我想从组合数据中过滤面板数据并尝试以下操作:

> anyDuplicated(df$Respnr)
[1] 45047 # Out of 340.000

dfpanel<- subset(df, duplicated(df$Respnr) == TRUE)

然而,新的 df 减少到零观测值。以下导致了预期的观察量:

dfpanel<- subset(df, Nr < 3)

知道可能是什么问题吗?

标签: rfilterduplicatessubset

解决方案


虽然我还没有弄清楚为什么以前没有工作,但以下确实提供了一个可行的解决方案。我只是简单地拆分了以前的方法。该解决方案添加了一个列panel,在我的情况下,这实际上是一个受欢迎的添加

df$panel <- duplicated(df$Respnr)
dfpanel <- subset(df, df$panel == TRUE)

推荐阅读