小编Jan*_*nke的帖子

计算R中组中的因子

这是我的数据:

> head(Kandula_for_n)
                date      dist  date_only
1 2005-05-08 12:00:00  138.5861 2005-05-08
2 2005-05-08 16:00:00 1166.9265 2005-05-08
3 2005-05-08 20:00:00 1270.7149 2005-05-08
6 2005-05-09 08:00:00  233.1971 2005-05-09
7 2005-05-09 12:00:00 1899.9530 2005-05-09
8 2005-05-09 16:00:00  726.8363 2005-05-09
Run Code Online (Sandbox Code Playgroud)

我现在想要一个额外的列,每天有数据条目(dist)的count(n).对于2005-05-08,这将是n = 3,因为在12,16和20时有3个数据条目.我已应用以下代码实际上给了我想要的我想要的代码:

ndist <-tapply(1:NROW(Kandula_for_n), Kandula_for_n$date_only, function(x) length(unique(x)))
Run Code Online (Sandbox Code Playgroud)

之后ndist<-as.data.frame(ndist),我得到了这个:

> head(ndist)
           ndist
2005-05-08     3
2005-05-09     4
2005-05-10     6
2005-05-11     4
2005-05-12     6
2005-05-13     6
Run Code Online (Sandbox Code Playgroud)

问题是计数与date_only一起被称为ndist.但是我需要在两个单独的列中使用它们,一个带有count,另一个带有date_only.如何才能做到这一点?我想它相当简单,但我只是不明白.如果你能给我任何想法,我将不胜感激.

谢谢你的努力.

r dataframe

7
推荐指数
2
解决办法
5240
查看次数

R中的数据聚合循环

我面临着将数据汇总到日常数据的问题.我有一个数据框,其中删除了NA(下面给出了数据图片的链接).数据每天收集3次,但有时由于NAs,每天只有1或2个条目; 有些日子数据完全丢失了.

我现在有兴趣计算"dist"的每日平均值:这意味着总结一天的"dist"数据并将其除以每天的条目数(如果当天没有数据丢失则为3).我想通过一个循环来做到这一点.我怎么能用循环来做这个?问题是,有时我每天有3个条目,有时只有2个甚至1个.我想告诉R 每天,它应该总结"dist"并将其除以每个可用的条目数天.

我根本不知道如何为此目的制定for循环.如果你能就这个问题给我任何建议,我将不胜感激.感谢您的努力和亲切的问候,

一月

数据框:http://www.pic-upload.de/view-11435581/Data_loop.jpg.html

编辑:我按照建议使用了aggregate和tapply,但是,数据的平均值并没有真正计算:

              Group.1         x
1  2006-10-06 12:00:00  636.5395
2  2006-10-06 20:00:00  859.0109
3  2006-10-07 04:00:00  301.8548
4  2006-10-07 12:00:00  649.3357
5  2006-10-07 20:00:00  944.8272
6  2006-10-08 04:00:00  136.7393
7  2006-10-08 12:00:00  360.9560
8  2006-10-08 20:00:00       NaN
Run Code Online (Sandbox Code Playgroud)

使用的代码是:

dates<-Dis_sub$date
distance<-Dis_sub$dist
aggregate(distance,list(dates),mean,na.rm=TRUE)
tapply(distance,dates,mean,na.rm=TRUE)
Run Code Online (Sandbox Code Playgroud)

aggregate r dataframe

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

标签 统计

dataframe ×2

r ×2

aggregate ×1