正在为R进行第二个项目。我试图使用dplyr
创建一些变量组,但是我不确定在这里做什么。
我正在使用财务数据,在类别中,有几种不同的旅行形式,如下所示:
旅行-汽油,旅行-机票,旅行-地铁...
我想创建一个新的tibble
,将所有Travel子类型分组为一个Travel子组。有什么好方法吗?
到目前为止,我一直在尝试使用dplyr
filter
函数。
对不起,我真的很累,忘了举个例子
我有这样的数据:
Month - Year - Category - Amount
01 - 2016 - "Travel- Air" - 247.02
01 - 2016 - "Travel- Car" - 29.04
01 - 2016 - "Retail" - 45.00
03 - 2017 - "Travel - Air" - 253.60
我正在尝试对事物进行分组,以便将特定月份/年份中一种类型的所有交易汇总在一起,如下所示:
Total_Category_Transactions_Month <- Total_Transactions %>%
group_by(month,Year,Category) %>%
summarize(monthly = sum(Amount))
但是在查看了我的数据之后,有太多事情被归类为“ Travel-foo”。我想保留该细节以供以后分析,但是对于大范围的情况,我想看看我是否可以将所有这些差旅费用每月都归为一体。
输出应最终为:
Month - Year - Category - Amount
01 - 2016 - "Travel" - 276.06
01 - 2016 - "Retail" - 45.00
03 - 2017 - "Travel" - 253.60
其中来自同一月份和年份的Travel_Foo类别的所有子类型都被添加到一个称为Travel的类别中
答案 0 :(得分:0)
一种选择是使用tidyr::separate
df %>%
separate(Category, into = c("Category"), extra = "drop") %>%
group_by(Month, Year, Category) %>%
summarise(Amount = sum(Amount)) %>%
ungroup() %>%
as.data.frame()
# Month Year Category Amount
#1 1 2016 Retail 45.00
#2 1 2016 Travel 276.06
#3 3 2017 Travel 253.60
请注意,as.data.frame()
在这里并不是必需的。我仅将其包括在内是为了显示结果Amount
是预期输出的结果(tibble
不会打印相同数量的小数位)。
df <- read.table(text =
"Month Year Category Amount
01 2016 'Travel- Air' 247.02
01 2016 'Travel- Car' 29.04
01 2016 'Retail' 45.00
03 2017 'Travel - Air' 253.60", header = T)