【问题标题】:Assigning value to Matrix in R在R中为矩阵赋值
【发布时间】:2014-06-24 08:14:25
【问题描述】:

我已经使用 read.csv 加载了一个数据集。这在第一行包含标题,然后在不同列中包含一堆股票价格。

然后我尝试执行滚动分析(平均值、SD 或任何其他简单的统计函数,并将其分配给我定义的矩阵中的一个元素)

但是,当我写入 csv 时,我一直为所有单元格获取 NA

我的代码

{
APD = read.table(file="C:\\Path\\Pasted Data Temp.csv",head=TRUE,sep=",",blank.lines.skip = TRUE,row.names = NULL);
DMA = matrix(nrow=dim(APD)[1]+25,ncol=dim(APD)[2]+25)
a = ncol(APD);
DMAno = 20; 
for(i in 3:a) {
z = length(APD[1])
for(j in DMAno:z)
    {
    DMA[[i][j]] <- mean(APD$ABNL[j-DMAno+2:j])
    }
}
}

【问题讨论】:

  • 使用zoorollapply

标签: r matrix assign


【解决方案1】:

正如 agstudy 建议的那样,rollapply 可能是最好的选择,因为它会非常快。

至于您的代码: 您需要在(j-DMAno+2):j 和 R 中以某种不同的方式使用一个子集矩阵中的一些括号,即通过DMA[j,i] 访问 DMA 的第 i 列和第 j 行。 data.frame$x[] 产生一些冗余子集。试试这个:

for(i in 3:a) {
  z = length(APD[1])
  for(j in DMAno:z)
      {
      DMA[j,i] <- mean(APD[(j-DMAno+2):j,"ABNL"])
      }
  }
}

【讨论】:

    猜你喜欢
    • 2019-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多