Это основано на вопросе, который я задал вчера.Это стало очень запутанным, поэтому я пытаюсь снова с более ясным вопросом.
У меня большой набор данных.
>head(raw)
ps cond pass sample stim gsr
1 1 2 0 0 0 100
2 1 2 0 1 0 100
3 1 2 0 2 0 100
4 1 2 0 3 0 100
5 1 2 0 4 0 100
6 1 2 0 5 0 100
Столбец $ стимул состоит из различных периодов, пронумерованных 1-11 (каждый период длится 20 $ выборки), с более длинными блоками 0 (продолжительностью 140 $ выборка).
Для каждого $tim == 10 мне нужно отметить следующий диапазон:
например,
count (raw $ sample [raw $ ps == 1 & raw $ стим = == 10]) # это считается для 1 субъекта в качестве примера
x freq
1 1100 1
2 1101 1
3 1102 1
4 1103 1
5 1104 1
6 1105 1
7 1106 1
8 1107 1
9 1108 1
10 1109 1
11 1110 1
12 1111 1
13 1112 1
14 1113 1
15 1114 1
16 1115 1
17 1116 1
18 1117 1
19 1118 1
20 1119 1
Так что я хочу, чтобы начало диапазона начиналось через 10 ячеек после последней ячейки с $ activ == 10 (в этомНапример, это 1119, поэтому мы начинаем с 1120. Нам нужно посчитать 10 с этого места: 1130. Конец диапазона составляет 50 $ выборки из 1130 = 1180.
Итак.Мне кажется, мне нужен новый столбец в моем необработанном файле, который помечает ИСТИНА для тех ячеек, которые будут использоваться в анализе. В приведенном выше примере они будут находиться в диапазоне между $ sample == 1130 и 1180.
Я не хочу проходить вручную. Я ищу более автоматизированный способ помечать диапазоны.
Надеюсь, теперь стало яснее, чем я являюсьiming for?
Дополнительная информация:
> sort(unique(rle(raw$n.filter)$length))
40 50 590 1080 1130 1240 1400 1560 1720 1880 2030 2040 2200 2360
> summary(raw$stim)
0 1 2 3 4 5 6 7 8 9 10 11
286440 3720 3720 3720 3720 3720 3720 3720 3720 3720 3720 3720
> summary(raw$stim[raw$ps==1])
0 1 2 3 4 5 6 7 8 9 10 11
1540 20 20 20 20 20 20 20 20 20 20 20
> summary(raw$stim[raw$ps==186])
0 1 2 3 4 5 6 7 8 9 10 11
1540 20 20 20 20 20 20 20 20 20 20 20