首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >` `tapply()`返回数据帧

` `tapply()`返回数据帧
EN

Stack Overflow用户
提问于 2011-09-09 10:22:46
回答 3查看 2.6K关注 0票数 3

我有一个数据集,它包含一个日期时间(POSIXct)、一个“节点”(因子)和一个"c“(数字)列,例如:

代码语言:javascript
复制
                 date node           c
1 2011-08-14 10:30:00    2 0.051236000
2 2011-08-14 10:30:00    2 0.081230000
3 2011-08-14 10:31:00    1 0.000000000
4 2011-08-14 10:31:00    4 0.001356337
5 2011-08-14 10:31:00    3 0.001356337
6 2011-08-14 10:32:00    2 0.000000000

对于所有的"date“和"node”对,我需要取"c“列的均值,所以我这样做:

代码语言:javascript
复制
tapply(data$c, list(data$node, data$date), mean)

我得到的结果就是我想要的,但结构很奇怪:

代码语言:javascript
复制
num [1:5, 1:8923] 0 0 0.00092 0.00146 NA ...
 - attr(*, "dimnames")=List of 2
  ..$ : chr [1:5] "1" "2" "3" "4" ...
  ..$ : chr [1:8923] "2011-08-14 10:30:00" "2011-08-14 10:31:00" "2011-08-14 10:32:00" "2011-08-14 10:33:00" ...

其中,示例输出为:

代码语言:javascript
复制
  2011-08-17 23:56:00 2011-08-17 23:57:00 2011-08-17 23:58:00
1        4.759077e-05        4.759077e-05        4.759077e-05
2        0.000000e+00        3.875248e-05        1.595690e-04
3        1.134391e-03        1.134391e-03        1.109730e-03
4        4.882813e-04        6.914658e-04        4.955846e-04
5        0.000000e+00        0.000000e+00        0.000000e+00

我想要的是类似于原始结构的东西,带有日期时间、节点因子和"c“值。我想不出该如何做到这一点。任何帮助都将不胜感激。

非常感谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-09-09 15:07:42

你可以试试..。

代码语言:javascript
复制
aggregate( c ~ node + date, data = data, FUN = mean )
票数 7
EN

Stack Overflow用户

发布于 2011-09-09 10:48:13

您希望使用ave而不是tapply

代码语言:javascript
复制
data$grp.mean <- ave(data$c, list(data$node, data$date), FUN= mean)

再看看这个,我想知道你是否想在日历意义上的24小时的“日期”的基础上进行聚合?

如果您想使用已有的结果(假设它们被命名为"M"),您可能想要尝试一下:

代码语言:javascript
复制
require(reshape2)
newdf <- melt(t(M))
票数 4
EN

Stack Overflow用户

发布于 2011-09-09 11:34:47

如果您希望输出具有三列的数据框,那么查看plyr包(假设您的数据存储在dat中)可能会对您有所帮助:

代码语言:javascript
复制
library(plyr)
ddply(dat,.(date,node),summarise,m = mean(c))
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7356522

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档