r - 使用分割、剪切和重复函数来过滤R中的数据

标签 r

我有一个如下所示的数据集。

date <- strptime(c("2011-09-01 00:00:00","2011-09-01 06:00:00","2011-09-01 12:00:00","2011-09-01 18:00:00","2011-09-02 00:00:00",
"2011-09-02 06:00:00","2011-09-02 12:00:00","2011-09-02 18:00:00","2011-09-03 00:00:00","2011-09-03 06:00:00","2011-09-03 12:00:00",
"2011-09-03 18:00:00","2011-09-04 00:00:00","2011-09-04 06:00:00","2011-09-04 12:00:00","2011-09-04 18:00:00","2011-09-05 00:00:00",
"2011-09-05 06:00:00","2011-09-05 12:00:00","2011-09-05 18:00:00","2011-09-06 00:00:00"), format ="%Y-%m-%d %H:%M:%S")

volt <- c(7,8,9,10, 7, 8, 9, 10,  6.1, 11.1,  9.1,  10.1, 7, 8,  9, 10, 6.3, 9.4, 1.3, 19.1, 5.6)

sampV <- data.frame(date,volt)
sampV


               date volt
2011-09-01 00:00:00 7
2011-09-01 06:00:00 8
2011-09-01 12:00:00 9
2011-09-01 18:00:00 10
2011-09-02 00:00:00 7
2011-09-02 06:00:00 8
2011-09-02 12:00:00 9
2011-09-02 18:00:00 10
2011-09-03 00:00:00 6.1
2011-09-03 06:00:00 11.1
2011-09-03 12:00:00 9.1
2011-09-03 18:00:00 10.1
2011-09-04 00:00:00 7
2011-09-04 06:00:00 8
2011-09-04 12:00:00 9
2011-09-04 18:00:00 10
2011-09-05 00:00:00 6.3
2011-09-05 06:00:00 9.4
2011-09-05 12:00:00 1.3
2011-09-05 18:00:00 19.1
2011-09-06 00:00:00 5.6

现在我想使用日期列每天对数据进行分组,然后检查 v 中的结果分组是否重复。例如,9 月 1 日和 2 日的“伏特”数据会重复 (7,8,9,10)。

我一直在尝试使用此代码将其分成不同的日子,但这是我所能做到的。

t1 <- strptime("2011-09-01 00:00:00",format="%Y-%m-%d %H:%M:%S")
t2 <- strptime("2011-09-06 00:00:00",format="%Y-%m-%d %H:%M:%S")

seqD <- seq(t1,t2, by="day")
ctD <- cut(sampV$date, seqD, labels=F )
spD <- split(sampV$date,ctD)

所以我的问题是,如何使用重复函数或任何与此相关的函数提取从一天复制到下一天的数据?我只是 R 的初学者,我仍在学习诀窍,所以我们将非常感谢您的帮助。谢谢

最佳答案

假设我正确理解了您的问题,这是一种仅使用 splitduplicate 的方法:

days <- format(sampV$date, '%Y%m%d')
filtered <- split(sampV, days)[! duplicated(split(sampV$volt, days))]
do.call(rbind, filtered)

#                            date volt
# 20110901.1  2011-09-01 00:00:00  7.0
# 20110901.2  2011-09-01 06:00:00  8.0
# 20110901.3  2011-09-01 12:00:00  9.0
# 20110901.4  2011-09-01 18:00:00 10.0
# 20110903.9  2011-09-03 00:00:00  6.1
# 20110903.10 2011-09-03 06:00:00 11.1
# 20110903.11 2011-09-03 12:00:00  9.1
# 20110903.12 2011-09-03 18:00:00 10.1
# 20110905.17 2011-09-05 00:00:00  6.3
# 20110905.18 2011-09-05 06:00:00  9.4
# 20110905.19 2011-09-05 12:00:00  1.3
# 20110905.20 2011-09-05 18:00:00 19.1
# 20110906    2011-09-06 00:00:00  5.6

关于r - 使用分割、剪切和重复函数来过滤R中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13293569/

相关文章:

r - 从R中的字符中提取持续时间

r - 从 Perl 执行 R 脚本

r - 在 ggplotly 中设置工具提示参数时,geom_line 不绘制

r - Shiny 的观察者响应所有未选中的复选框

r - 将具有 CTAN 依赖项的 R 包提交给 CRAN

R Markdown !额外的对齐选项卡已更改为\cr。 <最近阅读>\endtemplate

r - 如何在 persp 中只有其他边界

r - 如何从 R 中检查 externalptr 是否为 NULL

r - dplyr 过滤器 : Get rows with minimum of variable, 但只有第一个如果多个最小值

r - 为什么我无法调用在我的终端中明显有效的 R 系统函数?