假设
Household person loop utility indicator
1 1 1 3 1
1 1 1 4 0
1 1 1 5 0
1 1 1 6 1
1 1 2 3 0
1 1 2 3 0
1 2 1 2 1
1 2 1 7 1
1 2 1 8 1
2 1 1 3 0
2 1 1 3 0
在每个家庭和每个人中,如果指标为1,我想为每个循环的第一行和最后一行添加Utility的值。 (如果指标对于循环的第一行为1,那么对于最后一行也为1)。循环中间行的指示符也没关系
第一个家庭中的第一人称:指标在循环的第一行和最后一行是1,所以我将添加3 + 6,对于他的第二个循环,指示符是0,所以我不需要它,可以将其放入不适用 输出
Household person loop utility
1 1 1 3 +6
1 2 1 2 +8
答案 0 :(得分:1)
我们可以filter
个分组,其中first
和last
indicator
的值为1,sum
first
和last
{{ 1}}的价值。
utility
在基数R中,它有点长
library(dplyr)
df1 %>%
group_by(Household, person, loop) %>%
filter(first(indicator) == 1 & last(indicator) == 1) %>%
summarise(utility = first(utility) + last(utility))
# Household person loop utility
# <int> <int> <int> <int>
#1 1 1 1 9
#2 1 2 1 10