【发布时间】:2021-04-21 14:28:53
【问题描述】:
尊敬的 StackOverflow 用户,
我正在努力实现 for 循环。我有一个包含时间列(YMD-HMS 格式)的数据框和另一个包含颗粒物数据的列。此外,我有一个包含开始和停止时刻的数据框;
#TIMEPOINTS log
start <- c(ymd_hms("2020-03-06 19:43:00",
"2020-03-06 19:47:00",
"2020-03-06 19:53:00",
"2020-03-06 20:00:00",
"2020-03-06 20:13:00",
"2020-03-06 20:22:00",
"2020-03-06 20:32:00",
"2020-03-06 20:36:00",
"2020-03-06 20:42:00",
"2020-03-06 20:45:00",
"2020-03-06 20:49:00",
"2020-03-06 21:01:00",
"2020-03-06 21:04:00",
"2020-03-06 21:06:00",
"2020-03-06 21:09:00",
"2020-03-06 21:12:00"))
end <- c(ymd_hms("2020-03-06 19:46:00",
"2020-03-06 19:49:00",
"2020-03-06 19:55:00",
"2020-03-06 20:02:00",
"2020-03-06 20:15:00",
"2020-03-06 20:24:00",
"2020-03-06 20:34:00",
"2020-03-06 20:38:00",
"2020-03-06 20:44:00",
"2020-03-06 20:47:00",
"2020-03-06 20:51:00",
"2020-03-06 21:03:00",
"2020-03-06 21:06:00",
"2020-03-06 21:08:00",
"2020-03-06 21:11:00",
"2020-03-06 21:14:00"))
df <- data.frame(start, end)
我希望创建一个包含所有数据点但没有这些特定时间点的新数据框,就像这样; (但不是使用 forloop,而是遍历各个起点和终点)。
dat2 <- dat %>% .[.[["Time"]] >= df$start[1],] %>%
.[.[["Time"]] <= df$end[1],]
我知道这可以使用 for 循环来完成,我试图根据我的情况来解决这个问题,但我有点迷茫..
非常感谢任何帮助!
【问题讨论】:
-
您拥有的解决方案非常好(有点……),实际上比
for循环要好得多。您想在这里使用for循环的原因是什么?或者是为了排除 所有 次落入您的df范围内的时间? -
抱歉,我的问题显然不够清楚。事实上,我想排除所有落入这些范围的时间。
标签: r for-loop nested-for-loop