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

Posted

技术标签:

【中文标题】如何从这些数据框中创建子集?【英文标题】:How can I create subsets from these data frame? 【发布时间】:2019-09-02 12:19:59 【问题描述】:

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

     0.000180   8
     0.000185   8
     0.000474   32

【问题讨论】:

尝试查看subset 函数。下次,请阅读此链接 (***.com/a/5963610/882102),了解如何提出好的问题。 @MrGumble 问题是我不能用秒和毫秒来使用它。第二列是以秒为单位的时间戳:测量进入时的毫秒数。简单的“子集”功能不能将时间范围子集化,例如一秒。 【参考方案1】:

从您的问题中很难看出您具体要做什么。您的数据没有列标题,我们不知道数据类型,您没有包含错误消息,并且您在原始问题和评论之间自相矛盾(第一列是时间戳吗?或者第二列是时间邮票?

我试图理解。您是否尝试:

    将您原来的data.frame 拆分成多个data.frame? 查看数据的特定子集?实际上,您想filter 您的数据? 将您的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())

希望对你有帮助?

【讨论】:

以上是关于如何从这些数据框中创建子集?的主要内容,如果未能解决你的问题,请参考以下文章

如何将数据框中的值分配给在另一个数据框中创建的十分位数?

如何使用 SparkSession 从列表中创建数据框?

如何从熊猫数据框中创建一个字典?

如何从数据库c#中创建多年的下一个和上一个按钮

用于在 R 中创建和求和子集的用户定义函数

从项目列表中创建特定形状的熊猫数据框