У меня есть этот набор данных:
L group n y
1 1 10 1
2 1 11 4
3 1 12 9
4 1 4 4
5 1 10 10
6 1 11 9
7 1 9 9
8 1 11 11
9 1 10 10
10 1 10 7
11 1 12 12
12 1 10 9
13 1 8 8
14 1 11 9
15 1 6 4
16 1 9 7
17 1 14 14
18 1 12 7
19 1 11 9
20 1 13 8
21 1 14 5
22 1 10 10
23 1 12 10
24 1 13 8
25 1 10 10
26 1 14 3
27 1 13 13
28 1 4 3
29 1 8 8
30 1 13 5
31 1 12 12
32 2 10 1
33 2 3 1
34 2 13 1
35 2 12 0
36 2 14 4
37 2 9 2
38 2 13 2
39 2 16 1
40 2 11 0
41 2 4 0
42 2 1 0
43 2 12 0
44 3 8 0
45 3 11 1
46 3 14 0
47 3 14 1
48 3 11 0
49 4 3 0
50 4 13 0
51 4 9 2
52 4 17 2
53 4 15 0
54 4 2 0
55 4 14 1
56 4 8 0
57 4 6 0
58 4 17 0
Вот его структура с использованием dput ()
structure(list(litter = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58),
group = c(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4), n = c(10, 11, 12, 4, 10, 11, 9, 11, 10, 10,
12, 10, 8, 11, 6, 9, 14, 12, 11, 13, 14, 10, 12, 13, 10,
14, 13, 4, 8, 13, 12, 10, 3, 13, 12, 14, 9, 13, 16, 11, 4,
1, 12, 8, 11, 14, 14, 11, 3, 13, 9, 17, 15, 2, 14, 8, 6,
17), y = c(1, 4, 9, 4, 10, 9, 9, 11, 10, 7, 12, 9, 8, 9,
4, 7, 14, 7, 9, 8, 5, 10, 10, 8, 10, 3, 13, 3, 8, 5, 12,
1, 1, 1, 0, 4, 2, 2, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0,
2, 2, 0, 0, 1, 0, 0, 0)), class = "data.frame", row.names = c(NA,
-58L))
Я пытаюсь повернуть эти данные, чтобы создать двоичную переменную так, чтобы y это число успешных попыток, а ny - это число неудач.
Я уже использовал функцию rep()
, чтобы получить правильные значения для L и Group на основе числа n:
litter2 = rep(litter,n)
group2 = rep(group,n)
Я попытался сделать то же самое, используя для l oop здесь:
for (i in 1:58) {
y2[i] = rep(c(1,0),c(df[i,4],(df$n[i]-df$y[i])))
}
однако вместо получения вектора значений 607, сумма n с правильным числом успехов и неудач, Я получаю вектор с числом строк, равным числу, которое я установил в верхней части для l oop. С точки зрения моего мыслительного процесса я предположил, что, используя для l oop, я бы сделал повторение для каждого значения n и y. Так, например, в первом ряду он даст мне набор 1 1 и 9 0 в этом порядке.
Litter2 group2 y2
1 1 1
1 1 0
1 1 0
1 1 0
1 1 0
1 1 0
1 1 0
1 1 0
1 1 0
1 1 0
...
Затем он должен перейти к следующим строкам, выполняя те же вычисления, пока у меня не будет единого вектора со всеми вычисленными значениями. Очевидно, я делаю что-то не так, чтобы не получить ожидаемый результат. это имеет отношение к тому, чему я равняю уравнение, y2 [i]?