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 length72代表长度)   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