【发布时间】:2011-02-15 11:03:35
【问题描述】:
我最近在 r-help 邮件列表上发布了这个问题,但没有得到任何答案,所以我想我也将它发布在这里,看看是否有任何建议。
我正在尝试计算矩阵的累积标准差。我想要一个接受矩阵并返回相同大小的矩阵的函数,其中输出单元格 (i,j) 设置为第 1 行和第 i 行之间输入列 j 的标准偏差。 NAs 应该被忽略,除非输入矩阵的单元格 (i,j) 本身是 NA,在这种情况下输出矩阵的单元格 (i,j) 也应该是 NA。
我找不到内置函数,所以我实现了以下代码。不幸的是,这使用了一个循环,最终对于大型矩阵来说有点慢。是否有更快的内置函数或有人可以提出更好的方法?
cumsd <- function(mat)
{
retval <- mat*NA
for (i in 2:nrow(mat)) retval[i,] <- sd(mat[1:i,], na.rm=T)
retval[is.na(mat)] <- NA
retval
}
谢谢。
【问题讨论】:
标签: r statistics