Отображение фреймов данных с различными измерениями в R - PullRequest
0 голосов
/ 11 мая 2018

У меня есть два фрейма данных.

Первый имеет один столбец и 1000 строк.Значения, включенные в этот фрейм данных, относятся к интервалу (0,1].

Второй фрейм данных имеет 3 столбца и 5 строк в следующей форме:

From  To      Category
0.0   0.2        1
0.2   0.4        2
0.4   0.6        3
0.6   0.8        4
0.8   1.0        5

Iя пытаюсь присвоить / отобразить значения Category для значений первого фрейма данных с помощью следующего кода R:

for (i in (1:nrow(DataFrame1))){
  for (j in (1:(nrow(DataFrame2)))){
    if ( (DataFrame1$V1[i]>DataFrame2$From[j]) & (DataFrame1$V1[i]<=DataFrame2$To[j]) ){
      Result[i]<-DataFrame2$Category[j]
    }
  }
}

Этот код работает правильно, хотя для большего количества строк это занимает много времени. Есть ли ярлык для этого метода?

1 Ответ

0 голосов
/ 11 мая 2018

Функция findInterval прекрасно справляется с этой задачей.

set.seed(1)
df1 <- data.frame(val = runif(10))
df1$Category <- findInterval(df1$val, vec = c(0,0.2, 0.4, 0.6, 0.8), left.open = TRUE)
df1

#           val Category
# 1  0.26550866        2
# 2  0.37212390        2
# 3  0.57285336        3
# 4  0.90820779        5
# 5  0.20168193        2
# 6  0.89838968        5
# 7  0.94467527        5
# 8  0.66079779        4
# 9  0.62911404        4
# 10 0.06178627        1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...