R 列对的矩阵平均
我有一个100 X 10的矩阵,其中行是股票,列是每个月的价格。我需要每2个月计算一次每只股票的平均价格(根据下面给出的矩阵,每只股票总共5次)。这应该适用于所有100只股票。我该怎么做R 列对的矩阵平均,r,matrix,R,Matrix,我有一个100 X 10的矩阵,其中行是股票,列是每个月的价格。我需要每2个月计算一次每只股票的平均价格(根据下面给出的矩阵,每只股票总共5次)。这应该适用于所有100只股票。我该怎么做 msft 20 30 40 50 60 70 35 76 46 90 good 30 45 24 45 56 67 56 65 55 66 aapl 60 46 56 32 43 54 55 57 67 56 yhoo 64
msft 20 30 40 50 60 70 35 76 46 90
good 30 45 24 45 56 67 56 65 55 66
aapl 60 46 56 32 43 54 55 57 67 56
yhoo 64 54 45 56 67 66 78 65 77 78
bac 45 43 54 45 62 54 57 67 78 54
jpm 34 35 36 56 54 43 58 69 54 67
你能行
(mat[, c(TRUE, FALSE)] + mat[, c(FALSE, TRUE)]) / 2
一般来说
n.by.n <- 2
j <- seq_len(ncol(mat))
j.list <- split(j, j %% n.by.n)
m.list <- lapply(j.list, function(j)mat[, j, drop = FALSE])
Reduce(`+`, m.list) / n.by.n
n.by.n第一个解决方案看起来很酷,让我问你这个。事实上,这只是我试图做的鸟瞰图。我有10000(股票)乘1000(月)。所以它的价格是10000支股票,每支1000个月。我需要找到每50个月每支股票的平均价格,就像我们在示例中每两个月所做的一样。对,错会很快失去控制,至少对我来说是这样。太好了,看看我在编辑中是如何概括的,只需将n.by.n
设置为50
。太棒了,让我试试
n.by.n <- 2
w <- matrix(0, ncol(mat), ncol(mat) / n.by.n)
w[(row(w) + 1) %/% n.by.n == col(w)] <- 1 / n.by.n
mat %*% w