通过具有一定行数的唯一 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 是一个数组而不是逻辑。在这种情况下,您只需将其转化为逻辑即可。然后,它起作用了。
我还没有找到这个问题的明确答案,所以希望有人能指导我正确的方向!
我有一个嵌套数据框(面板数据),在多个个体中有多个观察值。我想通过至少有 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 是一个数组而不是逻辑。在这种情况下,您只需将其转化为逻辑即可。然后,它起作用了。