0

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

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

我尝试了以下方法:

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

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

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

提前致谢

4

1 回答 1

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

现在,它应该可以工作了。

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

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

于 2015-10-13T16:58:30.640 回答