Моя проблема заключается в следующем: я хотел бы удалить строки во фрейме данных, которые ниже, чем 50-й процентиль, определенный для каждой даты. Следующий пример иллюстрирует мою проблему.
У меня есть следующий фрейм данных:
date <- c("01.02.2011","01.02.2011","01.02.2011","01.02.2011","01.02.2011","01.02.2011",
"01.02.2011","01.02.2011","01.02.2011","01.02.2011",
"02.02.2011","02.02.2011","02.02.2011","02.02.2011","02.02.2011","02.02.2011",
"02.02.2011","02.02.2011","02.02.2011","02.02.2011")
date <- as.Date(date, format="%d.%m.%Y")
ID <- c("A","B","C","D","E","F","G","H","I","J",
"A","B","C","D","E","F","G","H","I","J")
values <- as.numeric(c("1","8","2","3","5","13","2","4","1","16",
"4","2","12","16","8","1","7","11","2","10"))
df <- data.frame(ID, date, values)
Выглядит так:
ID date values
1 A 2011-02-01 1
2 B 2011-02-01 8
3 C 2011-02-01 2
4 D 2011-02-01 3
5 E 2011-02-01 5
6 F 2011-02-01 13
7 G 2011-02-01 2
8 H 2011-02-01 4
9 I 2011-02-01 1
10 J 2011-02-01 16
11 A 2011-02-02 4
12 B 2011-02-02 2
13 C 2011-02-02 12
14 D 2011-02-02 16
15 E 2011-02-02 8
16 F 2011-02-02 1
17 G 2011-02-02 7
18 H 2011-02-02 11
19 I 2011-02-02 2
20 J 2011-02-02 10
Я хочу удалить все строки для каждой даты, где значения ниже 50-го процентиля (определенного по дате), чтобы получить:
ID date values
2 B 2011-02-01 8
5 E 2011-02-01 5
6 F 2011-02-01 13
8 H 2011-02-01 4
10 J 2011-02-01 16
13 C 2011-02-02 12
14 D 2011-02-02 16
15 E 2011-02-02 8
18 H 2011-02-02 11
20 J 2011-02-02 10
Если необходимо какое-либо редактирование моего вопроса, не стесняйтесь сообщить мне