通过具有特定行数的唯一ID变量子集数据帧

时间:2015-10-13 16:05:48

标签: r subset panel-data

我没有找到这个问题的明确答案,所以希望有人可以让我朝着正确的方向前进!

我有一个嵌套的数据框(面板数据),在多个人中有多个观察。我想通过具有至少20行数据的那些个体(id)对我的数据帧进行子集化。

我尝试了以下内容:

subset1 = subset(df, table(df$id)[df$id] >= 20) 

但是,我仍然找到少于20行数据的个人。

任何人都可以提供解决方案吗?

提前致谢

1 个答案:

答案 0 :(得分:1)

subset1 = subset(df, as.logical(table(df$id)[df$id] >= 20)) 

现在,它应该有效。

子集函数实际上是从条件部分获得一系列的真和假,这表明该行是否应该保持/是否满足条件。因此,条件部分的输出应该是一系列的真或假。

但是,如果将table(df$id)[df$id]>=20放在控制台中,您将看到它返回一个数组而不是逻辑。在这种情况下,您只需要将其转换为逻辑即可。然后,它有效。