Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用R将每小时乘客OD数据传输到OD矩阵_R_Matrix_Reshape - Fatal编程技术网

如何使用R将每小时乘客OD数据传输到OD矩阵

如何使用R将每小时乘客OD数据传输到OD矩阵,r,matrix,reshape,R,Matrix,Reshape,我正在尝试将每小时乘客OD数据传输到OD矩阵 我当前的数据帧如下所示: Hour Ostation Dstation Passengers 8 A B 2 8 A C 3 8 A D 4 8 B C 5 8 B D 6 8 C D 1 10 A

我正在尝试将每小时乘客OD数据传输到OD矩阵

我当前的数据帧如下所示:

Hour  Ostation Dstation  Passengers
8      A       B          2
8      A       C          3
8      A       D          4
8      B       C          5
8      B       D          6
8      C       D          1
10     A       B          4
10     A       C          5 
10     A       D          6 
10     B       C          1
10     B       D          2
10     C       D          3
我要的是
小时=8

    A   B   C   D
A       
B   2
C   3   5
D   4   6   1
小时=10

    A   B   C   D
A       
B   4
C   5   1
D   6   2   3
我使用
拆分
表格

ODdata$Ostation <- factor(ODdata$Ostation)
ODdata$Dstation <- factor(ODdata$Dstation)
ODtable <-lapply(split(ODdata, ODdata$Hour), 
                 function(x) table(x$Ostation, x$Dstation))

ODdata$Ostation您应该使用
dcast
from
restrape2
来代替
表格
。设置
drop=F
以保持输出矩阵中的所有因子水平

library(reshape2)
ODtable <-lapply(split(ODdata, ODdata$Hour), 
                 function(x) dcast(Dstation ~ Ostation , data = x, 
                                   value.var = "Passengers", drop = FALSE))
ODtable

#$`8`
#  Dstation  A  B  C  D
#1        A NA NA NA NA
#2        B  2 NA NA NA
#3        C  3  5 NA NA
#4        D  4  6  1 NA
# 
#$`10`
#  Dstation  A  B  C  D
#1        A NA NA NA NA
#2        B  4 NA NA NA
#3        C  5  1 NA NA
#4        D  6  2  3 NA
library(重塑2)
ODtable
ODdata <- data.frame(Hour = c(rep(8,6), rep(10,6)),
             Ostation = factor(c("A","A","A","B","B","C","A","A","A","B","B","C"),
                                   levels = c('A', 'B', 'C', 'D')),
             Dstation = factor(c("B","C","D","C","D","D","B","C","D","C","D","D"), 
                                   levels = c('A', 'B', 'C', 'D')),
             Passengers = c(2,3,4,5,6,1,4,5,6,1,2,3))