У меня есть фрейм данных с именем userLocationsDF.Имена строк - это идентификаторы для каждого пользователя, и каждый столбец представляет день.В то время как многие ячейки содержат значения NA, те, у которых есть данные, представляют местоположение пользователя в тот день.
Я хотел бы создать матрицу происхождения-назначения для всех пользователей с возможностьюизменить, какие дни (1-15) выбраны.
Я пробовал метод, описанный здесь: Создание матриц происхождения и назначения с R
Мне удалось получитьдата-фрейм to-from в течение 2 дней, используя его, который можно преобразовать в таблицу OD за эти два дня.Однако я бы хотел включить все 15 дней.Вот измененный код, с которым я столкнулся, который может создать кадр данных to-from, где каждая строка представляет изменение местоположения идентификатора в течение 2 дней:
spl <- split(userLocationsDF, row.names(userLocationsDF))
move.spl <- lapply(spl, function(x) {
ret <- data.frame(from=head(x$X8), to=tail(x$X9),
stringsAsFactors=FALSE)
ret[ret$from != ret$to,]
})
(moves <- do.call(rbind, move.spl))
Вот пример кадра данных в том же формате, что и у меня,Я знаю, что это не эффективно.Я новичок в кодировании.
naMatrix<-matrix(nrow=3, ncol=3)
sampleDF<-data.frame(naMatrix, row.names=c("123","456","789"))
colnames(sampleDF)=c("L1", "L2", "L3")
sampleDF$L1<-sample(paste(rep("city",3),1:5, sep=""),3,T)
sampleDF$L2<-sample(paste(rep("city",3),1:5, sep=""),3,T)
sampleDF$L3<-sample(paste(rep("city",3),1:5, sep=""),3,T)
В моих данных много значений NA.Прости меня за отсутствие опыта программирования.Р. был для меня трудным путешествием.