R- сохранять фиксированное количество наблюдений на идентификатор

#r #subset

#r #подмножество

Вопрос:

У меня есть большой фрейм данных, подобный следующему

введите описание изображения здесь

Я хочу сохранить равные наблюдения на идентификатор (в данном случае только 3) также я хочу сохранить достаточные интервалы между наблюдениями (т. Е. сохранить первое и последнее, а другое — между ними) как я могу подмножить свои данные и сохранить только требуемые

итак, финал будет таким

введите описание изображения здесь

Комментарии:

1. URL-адреса изображений повреждены

2. Пожалуйста, используйте dput , чтобы предоставить некоторые данные для работы. Какой код вы пробовали? Существуют ли какие-либо правила для выбора «среднего» идентификатора / наблюдения?

3. Попробуйте library(dplyr); df %>% group_by(ID) %>% sample_n(3)

Ответ №1:

Мы можем попробовать с data.table

 library(data.table)
setDT(df1)[, .SD[c(1,.N/2, .N)],  by = ID]
  

Комментарии:

1. Не хватает запятой: setDT(df1)[, .SD[c(1,.N/2, .N)], by = ID]