【发布时间】:2021-08-15 16:18:28
【问题描述】:
在尝试了很多方法之后,我来这里问一个关于Rstudio的问题。
基本上,我有一个名为 'dates' 的 R 对象,带有 42264 obs。 1 个变量(这些都是日期,格式为 YYYY-MM-DD HH:MM:SS,我通过包 lubridate 创建)。我有另一个名为 'observation' 的 R 对象,共有 274 个 obs。 2 个变量(也是相同格式的日期,第一列命名为 'Start',第二列命名为 'End',因为它们代表一个时间范围)。我想做的是从对象“日期”中排除在“观察”时间段内找到的所有日期。我发现以下论点似乎工作正常(有点):
nouvelles_dates<-dates[!(dates$Date %in% observation$Start:observation$End),]
但是,我的问题是这个参数只适用于“观察”中的第一行(时间段),而我希望它适用于所有 274 行。
我收到以下错误消息:
#Error in 1:observation : NA/NaN argument
#In addition: Warning messages:
#1: In observation$Start:observation$End :
# numerical expression has 274 elements: only the first used
我尝试创建循环,以便将参数应用于“观察”中的所有行,我尝试通过参数 for() 和 apply(),但它们似乎不起作用。也许是我的错误应用了这个论点。您对我如何解决这个问题有任何想法吗?
我的数据的子样本: 对象“日期”:
A tibble: 42,264 x 1
Date <dttm>
1 2018-05-29 08:00:00
2 2018-05-29 08:01:00
3 2018-05-29 08:02:00
4 2018-05-29 08:03:00
5 2018-05-29 08:04:00
6 2018-05-29 08:05:00
# ... with 42,258 more rows
对象'观察'
A tibble: 274 x 2
Start End
<dttm> <dttm>
1 2018-05-29 16:56:00 2018-05-29 18:16:00
2 2018-05-30 15:37:00 2018-05-30 16:57:00
3 2018-05-31 03:07:00 2018-05-31 04:27:00
# ... with 271 more rows
【问题讨论】:
-
您好,您可以分享您的数据的子样本,以便更轻松地为您提供适当的答案
-
你好。谢谢!对象“日期”:小标题:42,264 x 1 日期
1 2018-05-29 08:00:00 2 2018-05-29 08:01:00 3 2018-05-29 08:02:00 4 2018 -05-29 08:03:00 5 2018-05-29 08:04:00 6 2018-05-29 08:05:00 # ... 还有 42,258 行对象“观察”一个小标题:274 x 2 开始结束 1 2018-05-29 16:56:00 2018-05-29 18:16:00 2 2018-05-30 15:37:00 2018-05-30 16:57:00 3 2018-05-31 03:07:00 2018-05-31 04:27:00 # ... 还有 271 行