在Stata中,可以使用bysort
命令按照panel_key
进行排序,然后使用egen
命令创建一个新变量_N
,并保留_N
等于2的观察值。下面是Stata代码示例:
bysort panel_key (t) : egen _N = total(_N)
keep if _N == 2
在R中,可以使用dplyr
包来实现相同的操作。下面是R代码示例:
library(dplyr)
df <- df %>%
arrange(panel_key, t) %>%
group_by(panel_key) %>%
mutate(_N = n()) %>%
filter(_N == 2) %>%
select(-_N)
请替换df
为你的数据框的名称。以上代码首先按照panel_key
和t
列对数据框进行排序,然后使用group_by
函数按照panel_key
进行分组。接下来,使用mutate
函数创建一个新变量_N
,它表示每个组中的观察值数量。然后,使用filter
函数保留_N
等于2的观察值,并使用select
函数删除_N
变量。最后,将结果保存回df
数据框中。
这样,你就可以在R中按照panel_key
进行排序并保留_N
等于2的观察值。