如何按两个变量分组并根据cumsum创建一个新变量?

时间:2017-09-19 11:11:54

标签: r group-by cumsum

我正在根据酒店评论处理数据集。我创建了一个子集(440880行),如下所示:

 df2
 Hotel_ID  Review_date  Negative_Rev       Positive_Rev   Negative  Positive
        1   2015/08/20     bad staff   comfortable room          1         1
        1   2015/08/30   No Negative         good staff          0         1
        2   2015/09/24      no staff        No Positive          1         1
        2   2016/02/03  No Breakfast   near city centre          1         1
        2   2016/03/22   No Negative        No Positive          0         0

其中NegativePositive是基于Negative_RevPositive_Revx = 0 if No Negative or No Positive)的变量。 我想按df2Hotel_IDReview_Date进行分组,并创建两个名为Daily_NegativeDaily_Positive的新列,分别来自cumsum函数{ {1}}和Negative。 例如,我试过这个:

Positive

2 个答案:

答案 0 :(得分:1)

library(dplyr)   
df2 <- df2 %>% group_by(Hotel_ID,Review_date) %>%
               summarise(Daily_Negative = sum(Negative),
                         Daily_Positive = sum(Positive)) %>% 
               ungroup()

答案 1 :(得分:1)

以下是使用data.table包的另一个解决方案:

library(data.table)
df2[, .(Daily_Negative=sum(Negative), Daily_Positive=sum(Positive)), by=.(Hotel_ID, Review_date)]