我没有找到这个问题的明确答案,所以希望有人可以让我朝着正确的方向前进!
我有一个嵌套的数据框(面板数据),在多个人中有多个观察。我想通过具有至少20行数据的那些个体(id)对我的数据帧进行子集化。
我尝试了以下内容:
subset1 = subset(df, table(df$id)[df$id] >= 20)
但是,我仍然找到少于20行数据的个人。
任何人都可以提供解决方案吗?
提前致谢
答案 0 :(得分:1)
subset1 = subset(df, as.logical(table(df$id)[df$id] >= 20))
现在,它应该有效。
子集函数实际上是从条件部分获得一系列的真和假,这表明该行是否应该保持/是否满足条件。因此,条件部分的输出应该是一系列的真或假。
但是,如果将table(df$id)[df$id]>=20
放在控制台中,您将看到它返回一个数组而不是逻辑。在这种情况下,您只需要将其转换为逻辑即可。然后,它有效。