【问题标题】:loop to fill matrix after certain frequency在一定频率后循环填充矩阵
【发布时间】:2020-08-11 13:06:02
【问题描述】:

我的目标是以 102 (510/5) 的频率将这些值转换为 64 天。每天有 510 个值,我想每第五个值(1,6,11,... 以制作 102*64 的最终矩阵)。使用以下代码:

    data <- read.csv(file="voljump.csv", header=FALSE, sep=",")#32640
    mat <- data.matrix(data)
            fin_data <- t(mat)
             days <- nrow(data)#32640
    freq <- 510
    data_5 <- matrix(0, freq, days) 
    for(j in 1:days) {for (i in 1:freq) 
      {data_5[i,j] <- fin_data[(i-1)*4+1 ,j]}}     

我收到一个错误:

“fin_data[(i - 1) * 5 + 1, j] 中的错误:下标越界”

【问题讨论】:

    标签: r for-loop matrix


    【解决方案1】:

    我猜下面的代码可能会达到你的目标

    data_5 <- fin_data[seq(1,510,by=5),]
    

    【讨论】:

    • 它很好,但它只填充第一天。 (前 510 个)。其他日子不见了
    • @M-FaheemAslam fin_data 的维度是多少?不是510*64大小的矩阵吗?我使用了fin_data[seq(1,510,by=5), ],它通过所有列取出所需的行
    猜你喜欢
    • 2021-07-11
    • 2013-01-19
    • 1970-01-01
    • 2011-09-29
    • 1970-01-01
    • 1970-01-01
    • 2017-10-01
    • 1970-01-01
    相关资源
    最近更新 更多