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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。