Я сразу пойду: мне были предоставлены некоторые наборы данных в формате .csv, содержащие регулярно регистрируемые данные датчика с машины. Однако этот набор данных также содержит измерения, выполненные при выключении машины, которые я хотел бы отделить от данных, зарегистрированных с момента его включения. Чтобы подмножество соответствующих данных, у меня также есть файл, содержащий начальные и конечные времена этих остановок. Этот файл длиной несколько сотен строк.Подмножество данных по нескольким диапазонам дат - R
Примеры соответствующих файлов для этой проблемы:
file: sensor_data.csv
sens_name,time,measurement
sens_A,17/12/11 06:45,32.3321
sens_A,17/12/11 08:01,36.1290
sens_B,17/12/11 05:32,17.1122
sens_B,18/12/11 03:43,12.3189
##################################################
file: shutdowns.csv
shutdown_start,shutdown_end
17/12/11 07:46,17/12/11 08:23
17/12/11 08:23,17/12/11 09:00
17/12/11 09:00,17/12/11 13:30
18/12/11 01:42,18/12/11 07:43
к подмножеству данных в R, я ранее использовал subset()
функции с простыми условиями, работало хорошо, но я не знаю, как идти о подмножестве данных датчика, которые выходят за пределы нескольких диапазонов дат закрытия. Я уже форматировал данные даты и времени с помощью as.POSIXlt()
.
Я подозреваю, что некоторые сценарии могут быть связаны с хорошим решением, но я боюсь, что я еще недостаточно опыт для обработки данных такого типа.
Любая помощь, консультации или решения будут очень благодарны. Дайте мне знать, если что-то еще необходимо для решения.
Большое спасибо, Пьер! Я даже узнал кое-что из вашего кода. Однако после выполнения ваших шагов у меня возникают проблемы с 'ind1'. Ввод «summary (ind1)» показывает, что каждая строка была оценена как FALSE. Я подозреваю, что это связано с «условием фильтрации» внутри 'function (t)', но я не смог найти решение самостоятельно. Есть что-то, что я пропустил? Еще раз спасибо за ваше время. – AbuZabi
Еще раз приветствую. Я все еще пытаюсь понять это и застрял в попытке понять роль функции 'sum()' внутри 'function (t)'. С помощью 'sapply()' вы берете отдельные времена измерения из 'sensor_data $ time', а затем оцениваете, выполняет ли каждое условие в' function (t) ', правильно? Помогает ли функция 'sum()' в том, что время sensor_data находится в пределах ** любого интервала отключения? – AbuZabi
Использование 'sum' в функции - это способ подсчета количества ИСТИНЕЙ ИЛИ ЛОЖЬ. Попробуйте 'sum (c (TRUE, FALSE, TRUE))', чтобы увидеть, как он добавляется. –