当我按如下方式组织分析时:
group_by(transactions.DF,MonthCode) %>%
filter(str_detect(transactions.DF$Description,"Innocean")) %>%
summarize(monthly.income = sum(Amount))
我收到以下错误: 错误:结果的长度必须为84,而不是3029
当我按如下方式组织分析时:
transactions.DF %>%
filter(str_detect(transactions.DF$Description,"Innocean")) %>%
group_by(.$MonthCode) %>%
summarize(monthly.income = sum(Amount))
我得到了结果。
我认为过滤器可以保持我的分组结构并可以进行分析
答案 0 :(得分:1)
问题是,在transactions.DF$
中使用filter
会破坏分组并从整个列中获取值,而不是每个'MonthCode'的'Description'值
library(dplyr)
library(stringr)
transactions.DF %>%
group_by(MonthCode) %>%
filter(str_detect(Description,"Innocean")) %>%
summarize(monthly.income = sum(Amount))
注意:objectIdentifier$
函数中不需要tidyverse
。在某些情况下,我们可以从另一个数据集中提取列并进行比较