当stack
-ing DataFrame时,即将其从宽格式转换为长格式时,通常您指定id_vars
- 需要重复的列(索引) ,以及所有其他列(measure_vars
,例如观测值)都堆叠在一个长列中。
但在 Julia DataFrames 中,这些参数不是指定为命名关键字,并且在函数调用中 measure_vars
位于 id_vars
之前。
如此放置参数的原因是什么?如何在没有 measure_vars
的情况下指定 id_vars
?
最佳答案
What is the reason for such placement of arguments?
有以下考虑因素:
- 您必须有
measure_vars
才能执行堆叠,而无需id_vars
也可以执行stack
(默认情况下,如果您省略id_vars
这些被视为除measure_vars
之外的所有列);从技术上讲,你可以在没有measure_vars
的情况下执行stack
(请参阅下面我的评论 - 但我认为它不是很有用) - 向后兼容性(我们不想破坏,很久以前这是最初使用的方法,因为关键字参数很慢,但现在不再是这种情况了)
How do I specify
id_vars
withoutmeasure_vars
?
只需编写stack(df, [], id_vars)
,但这并不是 super 有用的东西。
另一方面,如果您想将 measure_vars
指定为除您希望成为 id_vars
的某些列之外的所有列,则编写:stack(df, Not (id_vars))
。
关于dataframe - 在 Julia DataFrame 的堆栈函数中将measure_vars 放在id_vars 之前的原因是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63559973/