Все есть в названии. Для иллюстрации я построил следующий пример.
У меня есть следующий фрейм данных:
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
Я хотел бы создать новый столбец "QF", который принимает следующие значения:
- 1, если <= 40-й процентиль, рассчитанный по дате </li>
- 2, если> 40-й процентиль и <70-й процентиль, рассчитанный по дате </li>
- 3, если> 70-й процентиль, рассчитанный по дате
Я хотел бы получить:
ID date values QF
1 A 2011-02-01 1 1
2 B 2011-02-01 8 3
3 C 2011-02-01 2 1
4 D 2011-02-01 3 2
5 E 2011-02-01 5 2
6 F 2011-02-01 13 3
7 G 2011-02-01 2 1
8 H 2011-02-01 4 2
9 I 2011-02-01 1 1
10 J 2011-02-01 16 3
11 A 2011-02-02 4 1
12 B 2011-02-02 2 1
13 C 2011-02-02 12 3
14 D 2011-02-02 16 3
15 E 2011-02-02 8 2
16 F 2011-02-02 1 1
17 G 2011-02-02 7 2
18 H 2011-02-02 11 3
19 I 2011-02-02 2 1
20 J 2011-02-02 10 2
Если необходимо какое-либо редактирование моего вопроса, не стесняйтесь, дайте мне знать