Матрица Гивена с 3 переменными, идентификатором и 2 цифрами c переменными «А» и «В». Я определил определенные диапазоны для значений переменной «A» и другие диапазоны для «B». Я хочу извлечь и сохранить идентификаторы, которые проверяют, что переменные «A» и «B» находятся в указанных диапазонах.
Рассмотрим, например, следующий пример:
DF = data.frame(identifier = 1:18, A=rep(c(1,2,3,4,5,6), each=3), B=rep(c(11,12,13,14, 15, 16), 3))
interval_a = c(1, 3, 6)
interval_b = c(11, 13, 16)
У меня есть фрейм данных, и я хочу извлечь идентификаторы, которые проверяют, что A составляет от 1 до 3, а B - от 11 до 13 Затем я хочу идентификаторы, которые проверяют, что A между 1 и 3, а B между 13 и 16 и т. Д. это:
identifier_list = list()
for(i in 1:(length(interval_a)-1))
{
df_tmp = DF[which(DF$A<interval_a[i+1] & DF$A>=interval_a[i]),]
for(j in 1:(length(interval_b)-1))
{
identifier_list[[(length(identifier_list) +1)]] = df_tmp[which(df_tmp$B<interval_b[j+1] & df_tmp$B>=interval_b[j]),'identifier']
}
}
Но я считаю, что это не практично, если число интервалов, которые должны рассматриваться в A и B, велико. Есть ли лучший способ?