Какая функция, кажется, совпадает с несколькими значениями во фреймах данных - PullRequest
0 голосов
/ 31 августа 2018

Я пытаюсь написать сценарий R, который указывает, какие часы / минуты дня "попадают" в определенное время начала / окончания.

Так, например, класс с временем начала / окончания 8 - 8:30 утра "попадет" в 8:00, 8:05, 8:10 ... 8:30. И не попадет в другие времена.

Конечной целью будет кадр данных с первым столбцом в качестве времени начала, вторым столбцом, временем окончания и третьим столбцом - отдельным временем, которое «попадает» в время начала / окончания. E.g.:

время начала и окончания 8:00 8:30 8:00 8:00 8:30 8:05 8:00 8:30 8: 10

Вот мой текущий сценарий:

library("tidyverse")

#create initial matrix
vector1 <- c(1:24) #listing of hours
vector2 <- seq.int(.05,.60,.05) #listing of every 5 minutes
possible_hrs <- data.frame(outer(vector1,vector2,'+')) 
#matrix of all possible hours/minutes

#pull in start/end time possibilities
start <-c(5,5.30)
end <-c(8,9.55)
class_time<-data.frame(start,end)


times<-function(class_time,possible_hrs){

#extract the values that match; where possible hours "fall into" start/end times
match = which(possible_hrs >= class_time$start & possible_hrs <= class_time$end, arr.ind=TRUE) 

values = data.frame(sort(possible_hrs[match]))

starts <- class_time$start
ends <- class_time$end
times <- values

results<-data.frame(starts,ends,times)
}

  results2 <- times(class_time,possible_hrs)
  results2

Но что-то не так с функцией which (), так как я получаю значения, которые не должны "попадать" в время начала / окончания соответственно.

Так что время 8:05 не должно попадать в блок времени 5:00 - 8:00. И также я не получаю все результаты во втором блоке времени ... Я не получаю время 9:00, которое должно попасть в блок времени 8:00 - 9:55.

Я новичок в этом, поэтому любые / все предложения помогут.

Спасибо! Джонатан

...