gpt4 book ai didi

r - 相当于 Stata 的 egen group() 函数

转载 作者:行者123 更新时间:2023-12-04 11:32:05 24 4
gpt4 key购买 nike

考虑以下数据集:

df = data.frame(id = c(1,1,1,2,2,2,3,3,3), 
time = c(1,2,3,1,2,3,1,2,3),
x = c(8,8,9,7,7,7,7,7,8),
id_x = c(1,1,2,3,3,3,4,4,5))
我想计算 id_x它标识了变量的每个唯一组合 idx (最好使用 dplyr )。
在 Stata 中,我可以执行以下操作:
Stata
clear

input id time x
1 1 8
1 2 8
1 3 9
2 1 7
2 2 7
2 3 7
3 1 7
3 2 7
3 3 8
end

egen id_x = group(id, x)

list, separator(0)

+----------------------+
| id time x id_x |
|----------------------|
1. | 1 1 8 1 |
2. | 1 2 8 1 |
3. | 1 3 9 2 |
4. | 2 1 7 3 |
5. | 2 2 7 3 |
6. | 2 3 7 3 |
7. | 3 1 7 4 |
8. | 3 2 7 4 |
9. | 3 3 8 5 |
+----------------------+

最佳答案

我们可以使用 dplyr::group_indices :

library(dplyr)

#df1 %>% mutate(id_xx = group_indices(.,id,x))
df1 %>% group_by(id,x) %>% mutate(id_xx = group_indices())
#> # A tibble: 9 x 5
#> # Groups: id, x [5]
#> id time x id_x id_xx
#> <dbl> <dbl> <dbl> <dbl> <int>
#> 1 1 1 8 1 1
#> 2 1 2 8 1 1
#> 3 1 3 9 2 2
#> 4 2 1 7 3 3
#> 5 2 2 7 3 3
#> 6 2 3 7 3 3
#> 7 3 1 7 4 4
#> 8 3 2 7 4 4
#> 9 3 3 8 5 5
数据:
df1 <-  data.frame(id = c(1,1,1,2,2,2,3,3,3), 
time = c(1,2,3,1,2,3,1,2,3),
x = c(8,8,9,7,7,7,7,7,8),
id_x = c(1,1,2,3,3,3,4,4,5))

关于r - 相当于 Stata 的 egen group() 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56710380/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com