在Julia DataFrame';中,将度量变量置于id变量之前的原因是什么;s堆栈函数?

在Julia DataFrame';中,将度量变量置于id变量之前的原因是什么;s堆栈函数?,dataframe,julia,Dataframe,Julia,当stack-ing数据帧时,即将其从宽格式转换为长格式,通常指定id\u vars-需要重复的列(索引),所有其他列(measure\u vars,例如,观测值)堆叠在一个长列中 但在Julia DataFrames中,这些参数没有指定为命名关键字,并且在函数调用中,measure\u vars位于id\u vars之前 为什么会有这样的争论?在没有测量变量的情况下,如何指定id变量 为什么会有这样的争论 有以下考虑: 您必须有measure\u vars才能执行堆叠,而可以在没有id\u v

stack
-ing数据帧时,即将其从宽格式转换为长格式,通常指定
id\u vars
-需要重复的列(索引),所有其他列(
measure\u vars
,例如,观测值)堆叠在一个长列中

但在Julia DataFrames中,这些参数没有指定为命名关键字,并且在函数调用中,
measure\u vars
位于
id\u vars
之前

为什么会有这样的争论?在没有测量变量的情况下,如何指定id变量

为什么会有这样的争论

有以下考虑:

  • 您必须有
    measure\u vars
    才能执行堆叠,而可以在没有
    id\u vars
    的情况下执行
    stack
    (默认情况下,如果省略
    id\u vars
    ,则这些列将被视为
    measure\u vars
    以外的所有列);从技术上讲,您可以使用
    堆栈
    而不使用
    度量值
    (请参阅下面的评论-但我认为这不是很有用)
  • 向后兼容性(我们不想被破坏,很久以前这是最初使用的方法,因为关键字参数很慢,现在不再是这种情况了)
  • 在没有测量变量的情况下,如何指定id变量

    只需编写
    堆栈(df,[],id_vars)
    ,但这并不是非常有用的东西


    另一方面,如果您希望将
    measure\u vars
    指定为所有列,但希望成为
    id\u vars
    的某些列除外,则写入:
    stack(df,而不是(id\u vars))

    我不知怎么地希望只指定
    id\u vars
    ,并将其余列指定为
    measure\u vars
    。无论如何,感谢您提供的
    Not(id\u vars)
    提示。我相信我已经在示例或帮助中看到了它!这是在过去的
    melt
    中,但我们决定只保留一个函数,因为每个人都一直忘记
    stack
    vs
    melt
    的参数顺序。我们删除了它,因为我们认为在实践中使用
    而不是
    应该足够容易。