2015-09-08 2 views
0

Данные: У меня есть данные в кадре данных с заголовками столбцов «subject_id», «date» и «категориальная_значение1». Categorical_value1 может иметь значения A, B и C. Каждый идентификатор объекта имеет несколько строк, но они не сортируются в каком-либо конкретном порядке.Устранить все строки, кроме наивысшего значения, по теме

Вопрос: Я хотел бы создать подмножество данных, в которых категориальное_значение1 должно быть = A и в котором выбрано только последнее (последнее) значение даты для каждого объекта subject_id. Таким образом, будет не более одной уникальной строки на subject_id, но, возможно, нет строк для данного объекта subject_id, если этот идентификатор не имеет категориального_значения1 = A. Любые советы о наиболее экономичном способе сделать это?

+0

Можете ли вы структурировать свой текст немного больше? –

ответ

0
select c1.subject_id, c1.date, c1.categorical_value1 
from Category c1 
where c1.categorical_value1 = 'A' 
inner join 
select c2.subject_id, max(c2.date) as date, c2.categorical_value1 
from Category c2 
where c2.categorical_value1 = 'A' 
group by c2.subject_id, c2.categorical_value1 
on c1.subject_id = c2.subject_id 
and c1.date = c2.date 
+0

Пока не уверен, как использовать предложение. Пример моей проблемы: set.seed (1234) mydates <- as.Date (образец (c 2007-07-22), 2004-200-13, 2004-03-29, 2001 -10-10 "," 2008-05-05 "," 2007-03-04 "), 10, replace = TRUE)) myids <- sample (c ('a001', 'a002', 'a003') , 10, replace = TRUE) mycatvar <- sample (c ('A', 'B', 'C'), 10, replace = TRUE) mydf <- data.frame (myids, mydates, mycatvar) Раствор должен давать a001 3/4/07 A a002 10/10/01 A a003 6/22/07 A – marcel

Смежные вопросы