如何从这些数据框中创建子集?
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
分组为设定时间间隔的特定增量,然后汇总结果?
假设您已将数据框中的变量命名为 time
和 value
,我将在下面讨论这三个示例。
#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())
希望对你有帮助?
【讨论】:
以上是关于如何从这些数据框中创建子集?的主要内容,如果未能解决你的问题,请参考以下文章