如何从这些数据框中创建子集?

时间:2019-09-02 12:19:59

标签: r bigdata rstudio

我想汇总我的数据。目标是在每个时间间隔中在图中有一个点。因此,我有2列的数据框。第一列是时间戳。第二个是值。我想评估每个时间段。这意味着:在时间段(例如1秒)内将所有值加在一起。 我不知道如何使用聚合函数,因为这些函数不支持任何时间。

     0.000180   8
     0.000185   8
     0.000474   32

1 个答案:

答案 0 :(得分:1)

从您的问题中分辨出您要具体做什么是不容易的。您的数据没有列标题,我们不知道数据类型,您没有包含错误消息,并且您在原始问题和注释之间矛盾(第一列是时间戳?还是第二列是时间?邮票?

我想了解。您是否要:

  1. 将您的原始data.frame拆分为多个data.frame
  2. 查看数据的特定子集?实际上,您想要filter您的数据吗?
  3. 将您的data.frame按设定的时间间隔按特定的增量分组,然后汇总结果?

假设您已将数据框上的变量命名为timevalue,下面将介绍这三个示例。

#Set Data
num <- 100
set.seed(4444)
tempdf <- data.frame(time = sample(seq(0.000180,0.000500,0.000005),num,TRUE), 
                     value = sample(1:100,num,TRUE))

#Example 1: Split your data in to multiple dataframes (using base functions)
temp1 <- tempdf[ tempdf$time>0.0003 , ]
temp2 <- tempdf[ tempdf$time>0.0003 & tempdf$time<0.0004 , ]

#Example 2: Filter your data (using dplyr::filter() function)
dplyr::filter(tempdf, time>0.0003 & time<0.0004)

#Example 3: Chain the funcions together using dplyr to group and summarise your data
library(dplyr)
tempdf %>% 
    mutate(group = floor(time*10000)/10000) %>% 
    group_by(group) %>% 
    summarise(avg = mean(value), 
              num = n())

我希望对您有帮助吗?