split
位于 base
包(package)。 说明
split
将向量 x
中的数据划分为 f
定义的组。替换形式替换与这种划分相对应的值。 unsplit
反转 split
的效果。
用法
split(x, f, drop = FALSE, ...)
## Default S3 method:
split(x, f, drop = FALSE, sep = ".", lex.order = FALSE, ...)
split(x, f, drop = FALSE, ...) <- value
unsplit(value, f, drop = FALSE)
参数
x |
包含要分组的值的向量或 DataFrame 。 |
f |
‘factor’ 在 |
drop |
逻辑指示是否应删除未发生的级别(如果 |
value |
与 |
sep |
字符串,在 |
lex.order |
逻辑,当 |
... |
进一步传递给方法的潜在参数。 |
细节
split
和 split<-
是具有默认方法和 data.frame
方法的通用函数。 DataFrame 方法还可用于将矩阵拆分为矩阵列表,以及类似的替换形式,前提是显式调用它们。
unsplit
适用于向量或数据帧列表(假设具有兼容的结构,就像由 split
创建的一样)。它将元素或行放回到 f
给出的位置。在数据帧情况下,行名称是通过从 value
的元素中取消分割行名称向量来获得的。
f
根据需要进行回收,如果 x
的长度不是 f
长度的倍数,则会打印警告。
f
中的任何缺失值都会与 x
的相应值一起删除。
默认方法调用interaction
当f
是一个list
。如果因子水平包含‘.’这些因子可能不会按预期进行分割,除非sep
设置为因子中不存在的字符串levels
.
值
从 split
返回的值是包含组值的向量列表。列表的组件由 f
的级别命名(转换为因子后,或者如果已经是因子和 drop = TRUE
,则删除未使用的级别)。
替换表格返回其右侧。 unsplit
返回 split(x, f)
等于 value
的向量或数据帧
例子
require(stats); require(graphics)
n <- 10; nn <- 100
g <- factor(round(n * runif(n * nn)))
x <- rnorm(n * nn) + sqrt(as.numeric(g))
xg <- split(x, g)
boxplot(xg, col = "lavender", notch = TRUE, varwidth = TRUE)
sapply(xg, length)
sapply(xg, mean)
### Calculate 'z-scores' by group (standardize to mean zero, variance one)
z <- unsplit(lapply(split(x, g), scale), g)
# or
zz <- x
split(zz, g) <- lapply(split(x, g), scale)
# and check that the within-group std dev is indeed one
tapply(z, g, sd)
tapply(zz, g, sd)
### data frame variation
## Notice that assignment form is not used since a variable is being added
g <- airquality$Month
l <- split(airquality, g)
## Alternative using a formula
identical(l, split(airquality, ~ Month))
l <- lapply(l, transform, Oz.Z = scale(Ozone))
aq2 <- unsplit(l, g)
head(aq2)
with(aq2, tapply(Oz.Z, Month, sd, na.rm = TRUE))
### Split a matrix into a list by columns
ma <- cbind(x = 1:10, y = (-4:5)^2)
split(ma, col(ma))
split(1:10, 1:2)
参考
Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.
也可以看看
cut
对数值进行分类。
strsplit
分割字符串。
相关用法
- R sprintf 使用 C 风格字符串格式化命令
- R strsplit 分割字符向量的元素
- R seq.Date 生成规则的日期序列
- R search 给出 R 对象的搜索路径
- R solve 求解方程组
- R scan 读取数据值
- R stop 停止函数执行
- R sign 标志函数
- R svd 矩阵的奇异值分解
- R strtoi 将字符串转换为整数
- R source 从文件、连接或表达式中读取 R 代码
- R sQuote 引用文字
- R switch 选择替代方案列表之一
- R substitute 替换和引用表达式
- R strrep 重复字符向量的元素
- R slice.index 数组中的切片索引
- R sort 对向量进行排序或排序
- R standardGeneric 形式化方法系统 – 调度 S4 方法
- R sequence 创建序列向量
- R startsWith 字符串是否以另一个字符串开头或结尾?
- R system.file 查找 R 系统文件的名称
- R sample 随机样本和排列
- R strwrap 将字符串换行以设置段落格式
- R seek 重新定位连接的函数
- R stopifnot 确保 R 表达式的真实性
注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Divide into Groups and Reassemble。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。