R: Найти и удалить строку с определенной датой - PullRequest
0 голосов
/ 22 апреля 2019

Я довольно новичок в R. Вот моя проблема: у меня огромный файл .txt с 100k строк, задача состоит в том, чтобы удалить все строки, которые содержат дату позже, чем, например, в этом месяце.

Дата в формате %Y-%m-%dT%H:%M:%S.%f+00:00

Пример строки, но она может содержать непостоянное количество слов: INFO: 2018-11-21T09:53:55.467550+00:00 (none) setaupasqa[12]: 0012f73ad1a26

Я уже пробовал такой подход (функции datetime)чтобы найти дату, но, кажется, она не работает

Date <- read.delim("my_data.txt")
Date <- as.POSIXct(Date, format= "%Y-%m-%dT%H:%M:%S.%f+00:00", tz="UTC")
as.POSIXlt(Date)$year + 1900 

Заранее спасибо.

1 Ответ

0 голосов
/ 22 апреля 2019

Вы можете использовать lubridate для этого.Пример примера:

library(data.table)
library(dplyr)
df <- fread("sample.txt", header = F)
df$V2 <- lubridate::ymd_hms(df$V2)

#Filter all rows with month >= 11
df %>%
  filter(month(V2) >= 11)
V1                  V2     V3              V4            V5
1 INFO: 2018-11-22 09:53:55 (none) setaupasqa[12]: 0012f73ad1a26

Пример данных

$ cat sample.txt
INFO: 2018-10-21T09:53:55.467550+00:00 (none) setaupasqa[12]: 0012f73ad1a26
INFO: 2018-11-22T09:53:55.467550+00:00 (none) setaupasqa[12]: 0012f73ad1a26
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...