Я пытаюсь установить поднабор данных на основе двух критериев. Вот снимок моих данных:
ids <- c(1,1,1,1,1,1, 2,2,2,2,2,2, 3,3,3,3,3,3)
seq <- c(1,2,3,4,5,6, 1,2,3,4,5,6, 1,2,3,4,5,6)
type <- c(1,1,5,1,1,1, 1,1,1,8,1,1, 1,1,1,1,1,1)
data <- data.frame(ids, seq, type)
ids seq type
1 1 1 1
2 1 2 1
3 1 3 5
4 1 4 1
5 1 5 1
6 1 6 1
7 2 1 1
8 2 2 1
9 2 3 1
10 2 4 8
11 2 5 1
12 2 6 1
13 3 1 1
14 3 2 1
15 3 3 1
16 3 4 1
17 3 5 1
18 3 6 1
ids
- идентификатор студента, seq
- последовательность вопросов (предметов), которые учащиеся принимают. type
относится к типу вопроса. 1
просто, 5
или 8
- сложные предметы. Я хотел бы создать 1-ю переменную (complex
) относительно того, есть ли у ученика сложный предмет (type=5|8
). Тогда я хотел бы получить:
> data
ids seq type complex
1 1 1 1 1
2 1 2 1 1
3 1 3 5 1
4 1 4 1 1
5 1 5 1 1
6 1 6 1 1
7 2 1 1 1
8 2 2 1 1
9 2 3 1 1
10 2 4 8 1
11 2 5 1 1
12 2 6 1 1
13 3 1 1 0
14 3 2 1 0
15 3 3 1 0
16 3 4 1 0
17 3 5 1 0
18 3 6 1 0
Второй шаг - разделить данные внутри студентов. (a)
Для студента, у которого есть не сложные предметы (complex=0
), я хотел бы разделить набор данных на половину и получить это ниже:
>simple.split.1
ids seq type complex
13 3 1 1 0
14 3 2 1 0
15 3 3 1 0
>simple.split.2
ids seq type complex
16 3 4 1 0
17 3 5 1 0
18 3 6 1 0
(b)
для студентов, которые имеют сложные элементы (complex=1
), я хотел бы установить сложный элемент как точку обрезки и разделить данные оттуда. Таким образом, данные должны выглядеть следующим образом (исключая сложный элемент):
>complex.split.1
ids seq type complex
1 1 1 1 1
2 1 2 1 1
7 2 1 1 1
8 2 2 1 1
9 2 3 1 1
>complex.split.2
ids seq type complex
4 1 4 1 1
5 1 5 1 1
6 1 6 1 1
11 2 5 1 1
12 2 6 1 1
Есть мысли? Спасибо