我正在尝试按组计算数据帧中的行数。以下代码生成一个名为 x1 的新列,其中包含预期信息:
by(df, [:grouping_var_1, :grouping_var_2], nrow)
Run Code Online (Sandbox Code Playgroud)
但是,我不知道如何以可以定义 x1 以外的名称的方式生成此类列。到目前为止我找到的解决方案是:
@pipe df |> by(_, [:grouping_var_1, :grouping_var_2], nrow) |> rename(_, :x1 => :my_desired_name);
Run Code Online (Sandbox Code Playgroud)
无论如何,我可以直接执行此操作,而不必使用 rename 吗?
提前致谢。
请将DataFrames.jl更新至0.21版本。
然后使用:
combine(groupby(df, [:grouping_var_1, :grouping_var_2]], nrow => :my_desired_name)
Run Code Online (Sandbox Code Playgroud)
两条评论:
by已弃用,建议您不要使用它(如果使用 启动 Julia,您可以看到警告--depwarn=true)source_columns => function => target_column_name,您可以使用简写source_columns => function,在这种情况下,目标列的名称会自动生成。一个特殊情况是nrow(没有任何内容) 和nrow => target_column_name,因为nrow为了方便起见,您不必传递源列