DataFrames.jl:定义计数列名时按组计数行
我正在尝试按组计算数据帧中的行数。以下代码生成一个名为x1的新列,该列包含预期信息:DataFrames.jl:定义计数列名时按组计数行,dataframe,julia,Dataframe,Julia,我正在尝试按组计算数据帧中的行数。以下代码生成一个名为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_nam
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
- 编写transoformation的一般模式是
,您可以使用缩写source\u columns=>function=>target\u column\u name
,在这种情况下,目标列的名称会自动生成。一种特殊情况是source\u columns=>function
(没有任何内容)和nrow
,对于nrow=>target\u column\u name
,为了方便起见,您不必传递源列nrow