使用 R 将 2 个结果向量合并到 1 个数据帧中

Merge 2 resulting vectors into 1 data frame using R

我有一个这样的df

Month <- c('JAN','JAN','JAN','JAN','FEB','FEB','MAR','APR','MAY','MAY') 
Category <- c('A','A','B','C','A','E','B','D','E','F')
Year <- c(2014,2015,2015,2015,2014,2013,2015,2014,2015,2013)
Number_Combinations <- c(3,2,3,4,1,3,6,5,1,1)
df <- data.frame(Month ,Category,Year,Number_Combinations)
df

  Month Category Year Number_Combinations
1  JAN        A 2014                   3
2  JAN        A 2015                   2
3  JAN        B 2015                   3
4  JAN        C 2015                   4
5  FEB        A 2014                   1
6  FEB        E 2013                   3
7  MAR        B 2015                   6
8  APR        D 2014                   5
9  MAY        E 2015                   1
10 MAY        F 2013                   1

我有另一个 df,我从上面的数据框中得到了一个条件

df1 <- subset(df,Number_Combinations > 2)
df1

  Month Category Year Number_Combinations
1  JAN        A 2014                   3
3  JAN        B 2015                   3
4  JAN        C 2015                   4
6  FEB        E 2013                   3
7  MAR        B 2015                   6
8  APR        D 2014                   5

现在我想创建一个 table 报告月份,df 中月份的总行数和 df1 中月份的总行数

所需输出为

  Month Number_Month_df Number_Month_df1
1   JAN               4                3
2   FEB               2                1
3   MAR               1                1
4   APR               1                1
5   MAY               2                0

虽然我使用了 table(df)table(df1) 并尝试合并但没有得到想要的结果。有人可以帮我获取上述数据框吗?

res <- data.frame(Number_Month_df=sort(table(df$Month),T),
                  Number_Month_df1=sort(table(df1$Month),T))
res$Month <- rownames(res)

我们从'df'和'df1'中得到'Month'列的table,转换为'data.frame'(as.data.frame), merge 通过 'Var1',并相应地更改列名。

 res <- merge(as.data.frame(table(df$Month)), 
             as.data.frame(table(df1$Month)), by='Var1')
 colnames(res) <- c('Month', 'Number_Month_df', 'Number_Month_df1')