Как удалить строки на основе различных значений столбца в R? - PullRequest
0 голосов
/ 04 мая 2018

У меня есть 24-часовой временной ряд (это действительно большие данные), с которым мне приходится работать только в определенные периоды времени. Как в час = 7, 15 и 23.

Я должен удалить все остальные строки, которые соответствуют 1, 2, 3, 4 ... часам. Я должен фильтровать строки в промежутке в 40 часов. Мне придется всегда оставаться с теми, которые соответствуют 7, 15 и 23 часам дня.

Я изо всех сил пытался создать еще один data.frame, включающий только эти строки и даже просто NULL бесполезных.

Я добавил один отпечаток из моих данных. Столбцы представляют месяцы, дни и часы 1955 года. Оно продолжается до последнего дня и часа 1955 года.

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

Data Example.

1 Ответ

0 голосов
/ 04 мая 2018

Один из способов выбора 7-го, 15-го и 23-го часов на основе данных на снимке экрана с использованием оператора извлечения base R заключается в следующем.

Tempo <- c(0,3600,7200,10800,1440,18000,21600,25200,28800,
           23400,36000,39600,43200,46800,50400,5400,57600,
           61200,64800,68400,72000,75600,79200,82800)
Ano <- rep(1955,24)
Mes <- rep(1,24)
Dia <- rep(1,24)
Hora <- 0:23
NiveldoMar <- c(1.07,0.91,0.81,0.78,0.91,1.05,1.32,1.57,
               1.60,1.48,1.30,1.07,1.10,1.22,1.42,1.45,1.40,1.32,
               1.27,1.40,1.62,NA,NA,NA)
ContoleInterno <- rep(0,24)

data <- data.frame(Tempo,Ano,Mes,Dia,Hora,NiveldoMar)
# select data from hours 7,15, and 23
data[data$Hora %in% c(7,15,23),]

... и вывод:

> data[data$Hora %in% c(7,15,23),]
   Tempo  Ano Mes Dia Hora NiveldoMar
8  25200 1955   1   1    7       1.57
16  5400 1955   1   1   15       1.45
24 82800 1955   1   1   23         NA
>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...