1

假设我有一个 pdata.frame(使用 r 中的 plm 包),如下所示:

> df <- data.frame(id=c(1,1,1,2,2,2,3,3,3,4,4,4), time=rep(1:3,4),obs=c(1,2,3,1,1,1,1,1,2,0,0,0))
> pdf <- pdata.frame(df)
> pdf
    id time obs
1-1  1    1   1
1-2  1    2   2
1-3  1    3   3
2-1  2    1   1
2-2  2    2   1
2-3  2    3   1
3-1  3    1   1
3-2  3    2   1
3-3  3    3   2
4-1  4    1   0
4-2  4    2   0
4-3  4    3   0

我的观察结果在某些指数中不会随时间id变化,但在其他指数中会随时间变化。我想找到那些不随时间变化的,即我想提取一些看起来像

    id time obs
2-1  2    1   1
2-2  2    2   1
2-3  2    3   1
4-1  4    1   0
4-2  4    2   0
4-3  4    3   0

是否有捷径可寻?

4

1 回答 1

1

像这样的东西?

pdf[!ave(pdf$obs, pdf$id, FUN = function(x) length(unique(x)) != 1), ]
 # id time obs
 # 2-1  2    1   1
 # 2-2  2    2   1
 # 2-3  2    3   1
 # 4-1  4    1   0
 # 4-2  4    2   0
 # 4-3  4    3   0
于 2014-04-15T03:33:53.203 回答