我有一个包含时间戳的文件,如下所示:
0.000100
0.003890
0.567980
0.999000
0.999990
1.000010
1.236800
1.456098
1.989001
2.098710
2.309879
2.890879
我想在上面的文件中使用 R 找到每秒的统计数据,例如 1st second: 5 values, 2nd second: 4, 3rd second 3。我还想找到每秒的平均值,所有秒中的最大值和最小值所有秒的值。如何使用 R 提取这些?我是 R 的新手,仍在学习。我知道如何在直方图中绘制这些,但不知道如何提取值。
数据:
x <- c(0.0001, 0.00389, 0.56798, 0.999, 0.99999, 1.00001, 1.2368, 1.456098,
1.989001, 2.09871, 2.309879, 2.890879)
最佳答案
您还可以使用 cut 函数创建一个因子(时间范围),然后以与 Justin 提出的聚合方式类似的方式使用:
y <- data.frame(val=x, time=cut(x, 0:round(max(x))))
aggregate(val~time, y, length)
aggregate(val~time, y, mean)
或者创建自己的函数并一举完成:
funner <- function(x){
c(mean=mean(x), n=length(x), min=min(x), max=max(x), sd=sd(x))
}
aggregate(val~time, y, funner)
产生:
> aggregate(val~time, y, funner)
time val.mean val.n val.min val.max val.sd
1 (0,1] 0.5141920 5.0000000 0.0001000 0.9999900 0.4996575
2 (1,2] 1.4204773 4.0000000 1.0000100 1.9890010 0.4223025
3 (2,3] 2.4331560 3.0000000 2.0987100 2.8908790 0.4102205
关于r - R 中的每秒统计数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11349572/