我想总结一下费用。但是,我的数据有点复杂(第一次使用R用户)。我有6年(2013-2018)的数据,每个ID都有GP费用。这意味着每个个人每年都有多行。我想总结一下每个人每年的费用。但是,成本可以来自不同的类别,如果是的话,我只希望对来自相同类别的成本进行汇总。例如:如果我希望将2013年ID 1的所有其他费用都加在一起,则将它们放在一起。然后在2013年为mental 1新增一个ID为1的行(见下文)。
Classes ‘tbl_df’, ‘tbl’ and 'data.frame': 3785547 obs. of 4 variables:
$ ID: 1, 1, 1, 2, 2..
..- attr(*, "format.spss")= chr "F9.3"
$ Category: 'haven_labelled' chr "Other” “Mental” "Other” "Other” ...
..- attr(*, "format.spss")= chr "A66"
..- attr(*, "display_width")= int 50
..- attr(*, "labels")= Named chr "Long" "Short" "Middle" "After" ...
.. ..- attr(*, "names")= chr "Long" "Short" "Middle" "After" ...
$ Year : num 2013 2013 2014 2014 2015 ...
..- attr(*, "format.spss")= chr "F9.3"
$ Costs : num 124 76.6 44.3 33.7 24.7 ...
..- attr(*, "format.spss")= chr "F9.3"
概述:
-ID:1、1、1、1、1、1、1、1、2、2…。
-年:2013、2013、2014、2015、2015、2015、2017、2013、2014。
-类别:其他,心理,其他,
其他,其他,精神,特殊,其他...
-费用:20、21、30、50、40、44
20、50、35…
我想要的是:每个人每年(针对每种费用类别)都有一行,其中包含该特定年份和费用类别的汇总费用。
我尝试过:sum_col_if(criterion,...,data = NULL),但无法正常工作。
非常感谢您!
答案 0 :(得分:1)
欢迎学生! tidyverse旨在使其变得非常简单...假设您的数据帧称为df
,您可以执行以下操作:
df %>% group_by(ID, Category, Year) %>% summarize(total = sum(Costs))
通过这种方式,您可以创建ID /类别/年份的组,并对它们进行汇总。试试看!