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