R 列对的矩阵平均

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

我有一个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  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