Поднабор из одного фрейма данных на основе нескольких строк другого фрейма данных - PullRequest
0 голосов
/ 26 марта 2020

Я работаю с данными акселерометра из часов актиографии и пытаюсь установить периоды, в течение которых человек спит, в соответствии с алгоритмом. Я определил периоды, в которые человек спит, причем начальная и конечная точки находятся в отдельном фрейме данных, а затем в моих исходных данных. Сейчас я пытаюсь отфильтровать данные между точкой, когда человек ложится спать и просыпается.

Мне удалось написать фильтр для первого столбца, то есть для первой ночи, но я не совсем знаю, как расширить его на другие дни.

Data[Data$timestamp %in% Sleep$in_bed_time:Sleep$out_bed_time,] -> Data_sleep

Отметки времени выглядят так: 2020-01-23 23: 22: 07

Я пытался работать с for и использовать ncol для расширения функционировать до последней строки в информационном фрейме Sleep, где хранятся входящие и исходящие данные.

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

Редактировать: Я нашел способ обойти это, все же я хотел бы знать, как расширить указанный выше фильтр, который занимает только первую строку столбца в Sleep $ in_bed_time для учета других строк.

Ответы [ 2 ]

0 голосов
/ 27 марта 2020

Я нашел ярлык, который я опубликую для всех, кто сталкивается с той же проблемой:

Если есть столбец, в котором указаны периоды отсутствия / износа или периоды сна / не сна, можно использовать actigraph.sleepr::combine_epochs_periods, чтобы отметить эти периоды. Первый период ожидания будет отмечен «1» в дополнительном столбце и так далее. Все остальные столбцы, не связанные со сном, будут содержать NA, который можно просто исключить с помощью na.omit

0 голосов
/ 26 марта 2020

Вы можете попробовать комбинировать входные и выходные значения с c(), что близко к вашему подходу.

Data[Data$timestamp %in% c(Sleep$in_bed_time,Sleep$out_bed_time),] -> Data_sleep

Или вы можете проверить оба столбца и использовать логический оператор | ИЛИ.

Data[Data$timestamp %in% Sleep$in_bed_time | Data$timestamp %in% Sleep$out_bed_time,] -> Data_sleep
...