繁体   English   中英

将数据框/矩阵转换为R中的矩阵列表

[英]Convert Data Frame/Matrix to list of Matrices in R

我有一个长矩阵(ncol = 6和nrow = 50,000,000 +)。 我想将其转换为矩阵列表,其中:

[i,4]和[i,5]是列表的名称(或键),

[i,1]是日期,

[i,2]和[i,3]是一天中的时间,

[i,6]是要存储在列表中的值。

列表中的矩阵都是相同的维。

for (i in seq(1, nrow(a2015_15))) {
    OD_L_2015_15[[
        paste(a2015_15[i,4], a2015_15[i,5])
        ]] [
            a2015_15[i,1], paste(a2015_15[i,2], a2015_15[i,3]) 
            ] = 
        as.numeric(a2015_15[i,6])
}

照原样,它需要一两个小时才能运行,特别是在速度较慢的计算机上,这是一个痛苦。

有什么建议可以使用apply语句来加快运行速度吗? 我试图将调用限制为a2015_15(通过保存a2015_15 [i,]然后引用它),但这似乎没有帮助。

谢谢。

编辑:这是我要更改的矩阵:

矩阵

该列表将被分为:OD_L_2015_15 [[Key1,Key2]] [Date,c(Time,Time2)] =值

赋值操作似乎vectorizeable,即它是否适合我的一个价值,它也应该为一个向量成功i的。 您是否尝试过:

i <-  seq(1,nrow(a2015_15))
OD_L_2015_15 <- list()
OD_L_2015_15[[ paste(a2015_15[i,4], a2015_15[i,5])]] [
                                  a2015_15[i,1], paste(a2015_15[i,2], a2015_15[i,3]) ] <- 
as.numeric(a2015_15[i,6])

这未经测试,我依靠您对循环成功的确认。 如果您想要测试的解决方案,则应发布此矩阵的较小版本,因为此时描述在“真实性”中没有“基础”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM