Julia Tidier:按符号向量分组

问题描述 投票:0回答:1

我有一个符号向量,并且想在 Tidier 的 group_by 宏中使用它们。但是,我假设宏需要一个字符串参数,这就是为什么它不起作用的原因。有没有办法将符号转换为字符串,以便 tidier 可以使用它们。

groupvars = [:category, :sub_category, :region]
df_sub = @chain df begin
            Tidier.@group_by(groupvars) 
            Tidier.@mutate(sales = sum(sales), 
                    profit = sum(profit), 
                    cogs = sum(cogs), 
                    discount = sum(discount), 
                    gross_profit = sum(gross_profit))
         end

错误是列名:在数据框中找不到groupvars,这是有意义的,因为它将“groupvars”转换为符号。

julia
1个回答
0
投票

由于变量是

Tidier
链中未加引号的符号,因此它将 groupvars 视为列名称。

使用

!!
虽然有效

using Tidier

groupvars = [:category, :sub_category, :region]

df_sub = 
  @chain df begin
    @group_by(!!groupvars) 
    @mutate(sales = sum(sales), 
            profit = sum(profit), 
            cogs = sum(cogs), 
            discount = sum(discount), 
            gross_profit = sum(gross_profit))
  end
© www.soinside.com 2019 - 2024. All rights reserved.