RNote__Reshape2
来源:互联网 发布:200万网络摄像机一夜 编辑:程序博客网 时间:2024/06/05 17:51
- melt
- parse_formula
- cast
- recast
- colsplit
分解到重组:melt——cast
melt
融化数据,变为长格式;
为泛型函数,具体有:
- melt.data.frame for data.frames
- melt.array for arrays, matrices and tables
- melt.list for lists
## S3 method for class ' data.frame 'melt(data, id.vars, measure.vars,variable.name = "variable", ..., na.rm = FALSE, value.name = "value",factorsAsStrings = TRUE)
id.vars是分类关键词,measure.vars是在数据data中只选择部分变量(列)输出。
parse_formula
将字符串转化为cast中的可执行formula。
reshape2:::parse_formula("a + ...", letters[1:6])reshape2:::parse_formula("a ~ b + d")
cast
浇铸,重组数据。
dcast(data, formula, fun.aggregate = NULL, ..., margins = NULL, subset = NULL, fill = NULL, drop = TRUE, value.var = guess_value(data))acast(data, formula, fun.aggregate = NULL, ..., margins = NULL, subset = NULL, fill = NULL, drop = TRUE, value.var = guess_value(data))
> recast(french_fries, time ~ variable, id.var = 1:4)Aggregation function missing: defaulting to length(72代表长度) time potato buttery grassy rancid painty1 1 72 72 72 72 722 2 72 72 72 72 723 3 72 72 72 72 724 4 72 72 72 72 725 5 72 72 72 72 726 6 72 72 72 72 727 7 72 72 72 72 728 8 72 72 72 72 729 9 60 60 60 60 6010 10 60 60 60 60 60
formula:a~b~c,其中c是最外围维度,b表示列,a表示行。
recast
将melt与cast一步完成;
recast(data, formula, ..., id.var, measure.var)
colsplit
> x <- c("a_1", "a_2", "b_2", "c_3")> vars <- colsplit(x, "_", c("trt", "time"))> vars trt time1 a 12 a 23 b 24 c 3> str(vars)'data.frame': 4 obs. of 2 variables: $ trt : chr "a" "a" "b" "c" $ time: int 1 2 2 3
0 0