У меня есть набор данных с 2 VP и 350 значениями интервалов для каждого. Я пишу if l oop, чтобы выбрать, когда минимальное значение VP1 перекрывается с максимальным значением VP2.
Данные обычно сортируются по VP, но я организовал сортировку по минимуму, поскольку это временные рамки.
Я запустил следующий код, который работал для назначения 0 или 1, когда значения перекрывают предыдущий элемент, но он не учитывает, что является предыдущим элементом (ie. Независимо от того, является ли предыдущий элемент VP1 или VP2 ).
for (i in 2:length(df$newvariable)) {
if (df$minimum[i] < df$maximum[i-1]){
df$newvariable[i] <- 0
} else {
df$newvariable[i] <- 1
}
}
Я хочу сказать if df$minimum[i] of VP1 < df$maximum[i] of VP2, then df$newvariable = 0. Otherwise, df$newvariable = 1.
Я не смог найти, как сделать его условным для каждой строки и l oop снова. У кого-нибудь есть рекомендации?
Большое спасибо.
Пример данных:
VP xmin xmax
1 0 6
2 0 2
2 6 14
1 14 24
2 20 30
1 30 36
... и т. Д. Для примерно 600 строк.
Желаемый результат:
VP xmin xmax newvariable
1 0 6 -
2 0 2 0
2 6 14 1
1 14 24 1
2 20 30 0
1 30 36 1
Если я у меня есть фрейм данных, в котором была другая переменная, и я выделил поднабор, чтобы рассматривать только одну часть переменной. Например, переменная = говорящий, и назначения 1 (да) или 0 (нет). Первоначально я выбрал только просмотр 0 и создание новых переменных, таких как quiet_together. Тем не менее, я хочу собрать эти кадры данных вместе, но добавил столбцы в отдельных кадрах данных. Если я хочу точно такую же вещь, как описано выше, но с кадром данных вместе (вместо двух отдельных), как бы я указал для каждой назначенной переменной? Я хочу закончить двумя новыми столбцами, основанными на значениях xmin и xmax, учитывая значение в говорящей переменной. Новые столбцы будут talk_together (для значения 1 говорящей переменной) и quiet_together (для значения 0 говорящей переменной, когда xmin <= xmax для предыдущей строки. </p>
Например:
Пример данных:
VP xmin xmax talking
1 0 6 0
2 0 2 0
2 2 6 1
2 6 14 0
1 6 14 1
2 14 24 1
1 14 20 0
1 20 30 1
2 24 32 0
1 30 32 0
... И так далее для 600 строк или около того.
Желаемый результат:
VP xmin xmax talking talk_together quiet_together
1 0 6 0 0 0
2 0 2 0 0 0
2 2 6 1 0 0
2 6 14 0 0 0
1 6 14 1 0 0
1 14 20 0 0 0
2 14 24 1 1 0
1 20 30 1 1 0
2 24 32 0 0 1
1 30 32 0 0 1