小编Gil*_*más的帖子

与R中的data.table聚合

练习包括通过因子的组合和R中的data.table来聚合值的数值向量.以下面的数据表为例:

require (data.table)
require (plyr)
dtb <- data.table (cbind (expand.grid (month = rep (month.abb[1:3], each = 3),
                                       fac = letters[1:3]),
                          value = rnorm (27)))
Run Code Online (Sandbox Code Playgroud)

请注意,'month'和'fac'的每个独特组合都会出现三次.因此,当我尝试通过这两个因素平均值时,我应该期望一个包含9个唯一行的数据框:

(agg1 <- ddply (dtb, c ("month", "fac"), function (dfr) mean (dfr$value)))
  month fac          V1
1   Jan   a -0.36030953
2   Jan   b -0.58444588
3   Jan   c -0.15472876
4   Feb   a -0.05674483
5   Feb   b  0.26415972
6   Feb   c -1.62346772
7   Mar   a  0.24560510
8   Mar   b  0.82548140
9   Mar   c  0.18721114
Run Code Online (Sandbox Code Playgroud)

但是,当与data.table聚合时,我会不断得到两个因素的每个冗余组合提供的结果:

(agg2 <- dtb[, value …
Run Code Online (Sandbox Code Playgroud)

r data.table

5
推荐指数
2
解决办法
496
查看次数

用reshape2反转熔化操作

请考虑以下代码.

library (reshape2)
x = rnorm (20)
y = x + rnorm (rnorm (20, sd = .01))

dfr <- data.frame (x, y)
mlt <- melt (dfr)
Run Code Online (Sandbox Code Playgroud)

当我尝试用dcast转换此操作时,

dcast (mlt, value ~ variable)
Run Code Online (Sandbox Code Playgroud)

我得到一个有三列的数据框(例如,不适合散点图).如何使用dcast重新生成原始数据框?

r reshape2

5
推荐指数
1
解决办法
5153
查看次数

标签 统计

r ×2

data.table ×1

reshape2 ×1