通过具有一定行数的唯一 id 变量对数据帧进行子集

Subset dataframe by unique id variables with certain number of rows

我还没有找到这个问题的明确答案,所以希望有人能指导我正确的方向!

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

我尝试了以下方法:

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

但是,我仍然发现有少于 20 行数据的人。

谁能提供解决方案?

提前致谢

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

现在,应该可以了。

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

但是,如果您将 table(df$id)[df$id]>=20 放入控制台,您会看到它 returns 是一个数组而不是逻辑。在这种情况下,您只需将其转化为逻辑即可。然后,它起作用了。