数据看起来像这样。
我期望的输出如下。 x应该是每分钟的平均值。
预先感谢
答案 0 :(得分:0)
这是一个粗略的解决方案,但是您可以使用:
# Packages needed for solution
library(tidyr)
library(dplyr)
# A minimal example of your data
data <- data.frame(time = c("November 3rd 2016, 14:22:37.304", "November 3rd 2016, 14:22:37.352",
"November 3rd 2016, 14:32:47.816", "November 3rd 2016, 14:32:50.816",
"November 3rd 2016, 15:32:47.816", "November 3rd 2016, 15:32:50.816"),
x = c(1,1.5,2,2.5,3,3.5))
# Solution
data %>%
separate(time, c("month", "day", "year", "hour",
"minute", "second", "millisecond")) %>%
group_by(hour, minute) %>%
summarise(mean(x))
# Result
# A tibble: 3 x 3
# Groups: hour [?]
hour minute `mean(x)`
<chr> <chr> <dbl>
1 14 22 1.25
2 14 32 2.25
3 15 32 3.25
首先,separate
通过将杂乱的日期变量拆分成多个组成部分,使其更易于处理(绝对有更好的方法)。 minutes
列包含计算分组均值所需的信息。通过结合使用group_by()
和summarise()
,可以计算出每分钟的平均值。
话虽如此,如果您通过提供实际数据而不是屏幕快照来使您的问题可重现,并且还向我们展示您到目前为止为解决问题所进行的尝试,那将是很棒的。