RNote__Reshape2

8 篇文章 0 订阅
3 篇文章 0 订阅

分解到重组: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 painty
1     1     72      72     72     72     72
2     2     72      72     72     72     72
3     3     72      72     72     72     72
4     4     72      72     72     72     72
5     5     72      72     72     72     72
6     6     72      72     72     72     72
7     7     72      72     72     72     72
8     8     72      72     72     72     72
9     9     60      60     60     60     60
10   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 time
1   a    1
2   a    2
3   b    2
4   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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值