我有一个数据帧,看起来像这样:
set.seed(100)
library(dplyr)
df <- tibble(ID = rep(1:4, each = 2),
weight = rep(abs(rnorm(4, 5, 3)), each = 2),
year = rep(2013:2014, 4),
var1 = sample(1:5, 8, rep = TRUE),
var2 = sample(1:5, 8, rep = TRUE))生成如下所示的数据:
# A tibble: 8 x 5
ID weight year var1 var2
<int> <dbl> <int> <int> <int>
1 1 3.493423 2013 3 2
2 1 3.493423 2014 1 2
3 2 5.394593 2013 4 2
4 2 5.394593 2014 5 4
5 3 4.763249 2013 2 3
6 3 4.763249 2014 2 4
7 4 7.660354 2013 4 3
8 4 7.660354 2014 4 4我希望就一年又一年的情况如何变化作出快速、简单的推断。ID变量是我的纵向样本中每个人的唯一标识符。
我的想法是使用group_by(ID)按ID对数据进行分组,然后可能以某种方式使用summarise函数。我想要当我们使用summarise函数时看到的“崩溃”效果。
例如,假设我想按人查看var1在这两年中是否保持不变。我们在上面看到了3号和4号人的真实情况。我希望能够获得以下数据框架:
# A tibble: 4 x 3
ID weight indicator
<int> <dbl> <lgl>
1 1 3.493423 FALSE
2 2 5.394593 FALSE
3 3 4.763249 TRUE
4 4 7.660354 TRUE或者,假设我想要查看2013年到2014年的var2差异,我希望获得以下数据框架:
# A tibble: 4 x 3
ID weight diff_var2
<int> <dbl> <dbl>
1 1 3.493423 0
2 2 5.394593 2
3 3 4.763249 1
4 4 7.660354 1有没有人有任何关于如何去做的想法?我不知道这将如何推广到更多年的数据,但目前我只是使用两年的纵向数据。
最终,例如,我想知道var1不变的人的加权比例,或var2中的加权平均移动等。这些只是我正在研究的查询类型的一些示例。
https://stackoverflow.com/questions/41516018
复制相似问题