0

次の構造を持つデータ フレーム: 'data.frame': 4371 obs. 6 つの変数:

 "$ tg     : num  0.0403 0.0404 0.0404 0.0404 0.0405 ...
 $ date   : Factor w/ 4371 levels "2/20/2020 10:00",..: 841 842 843 844 845 846 847 848 849 850 ...
 $ lgp_bar: int  497 497 497 497 497 497 497 497 494 494 ...
 $ lgt    : num  87.8 87.8 87.8 87.8 87.8 ...
 $ ugp_bar: int  451 451 451 451 451 451 451 450 447 447 ...
 $ ugt    : num  71.9 71.9 71.9 71.9 71.9 ..."

ex.のいくつかの日付の間でこのデータフレームをサブセット化する必要があります。2020 年 2 月 24 日 17:00 から 2020 年 2 月 26 日 02:00 までは dtaes データ型の初心者です。私はこの単純な作業を行うことができません。次のコードを試してみましたが、成功しませんでした。直感的に、Excel スプレッドシートでこのタスクを実行するには 2 分かかります。

humm<-read.csv("book1.csv", header = TRUE); 
humm$datenumber<-as_datetime(humm$date)
dts<-as.character(cbind("02/22/2020 02:00","02/23/20 10:00"))

hummfilter <- subset(humm, humm$date >= dts[1]) # || date <= dts[2])

hummfilter<-as.data.frame(humm[humm$date>=dts[1]|humm$date<=dts[2],],na.rm=TRUE)
4

1 に答える 1

1

date列を に変換しPOSIXctてからsubset.

ベース R を使用してこれを行うことができます:

humm$date <- as.POSIXct(humm$date, format = '%m/%d/%Y %H:%M')
subset(humm, date >= as.POSIXct('02/24/2020 17:00', format = '%m/%d/%Y %H:%M', tz = 'GMT') & 
             date <= as.POSIXct('02/26/2020 02:00', format = '%m/%d/%Y %H:%M', tz = 'GMT'))

または: dplyr_lubridate

library(dplyr)
library(lubridate)

humm %>%
  mutate(date = mdy_hm(date)) %>%
  filter(between(date, mdy_hm('02/24/2020 07:00'), mdy_hm('02/26/2020 02:00')))
于 2020-06-27T09:19:41.430 に答える