我有一个包含时间戳的文件,如下所示:

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/

10-12 14:59