当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R stack 从数据帧或列表中堆叠或取消堆叠向量


R语言 stack 位于 utils 包(package)。

说明

堆叠向量将多个向量连接成一个向量,并带有一个指示每个观察来源的因子。取消堆叠会反转此操作。

用法

stack(x, ...)
## Default S3 method:
stack(x, drop=FALSE, ...)
## S3 method for class 'data.frame'
stack(x, select, drop=FALSE, ...)

unstack(x, ...)
## Default S3 method:
unstack(x, form, ...)
## S3 method for class 'data.frame'
unstack(x, form, ...)

参数

x

要堆叠或取消堆叠的列表或 DataFrame 。

select

一个表达式,指示从 DataFrame 中选择哪个变量。

form

双边公式,其左侧计算为要拆垛的向量,右侧计算为要创建的组的指示符。 unstack 的数据帧方法中默认为 formula(x)

drop

是否从返回值的“ind”列中删除未使用的级别。

...

传入或传出其他方法的进一步参数。

细节

stack 函数用于将 DataFrame 或列表中作为单独列提供的数据转换为可用于方差模型或其他线性模型分析的单个列。 unstack 函数反转此操作。

请注意, stack 适用于向量(由 is.vector 确定):非向量列(例如因子)将被忽略并出现警告。在选择不同类型的向量的情况下,它们由 unlist 连接起来,其帮助页面解释了如何选择结果的类型。

这些函数是通用的:提供的方法处理可通过 as.list 强制转换为列表的数据帧和对象。

unstack 根据公式 form 生成列列表。如果所有列都具有相同的长度,则结果列表将被强制为 DataFrame 。

stack 生成一个包含两列的 DataFrame :

values

连接 x 中选定向量的结果。

ind

指示观察源自 x 中的哪个向量的因子。

例子

require(stats)
formula(PlantGrowth)         # check the default formula
pg <- unstack(PlantGrowth)   # unstack according to this formula
pg
stack(pg)                    # now put it back together
stack(pg, select = -ctrl)    # omitting one vector

作者

Douglas Bates

也可以看看

lm , reshape

相关用法


注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Stack or Unstack Vectors from a Data Frame or List。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。