【发布时间】:2014-10-21 11:46:25
【问题描述】:
我有一个非常大的数据集,维度为60K x 4 K。我正在尝试在每一行列中连续添加每四个值。以下是较小的示例数据集。
set.seed(123)
mat <- matrix (sample(0:1, 48, replace = TRUE), 4)
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12]
[1,] 0 1 1 1 0 1 1 0 1 1 0 0
[2,] 1 0 0 1 0 1 1 0 1 0 0 0
[3,] 0 1 1 0 0 1 1 1 0 0 0 0
[4,] 1 1 0 1 1 1 1 1 0 0 0 0
这是我要执行的操作:
mat[1,1] + mat[1,2] + mat[1,3] + mat[1,4] = 0 + 1 + 1 + 1 = 3
即每四个值相加并输出。
mat[1,5] + mat[1,6] + mat[1,7] + mat[1,8] = 0 + 1 + 1 + 0 = 2
继续到矩阵的末尾(这里到 12)。
mat[1,9] + mat[1,10] + mat[1,11] + mat[1,12]
一旦第一行完成,将相同的内容应用到第二行,例如:
mat[2,1] + mat[2,2] + mat[2,3] + mat[2,4]
mat[2,5] + mat[2,6] + mat[2,7] + mat[2,8]
mat[2,9] + mat[2,10] + mat[2,11] + mat[2,12]
结果将是nrow x (ncol)/4 矩阵。
预期结果如下:
col1-col4 col5-8 col9-12
row1 3 2 2
row2 2 2 1
row3 2 3 0
row4 3 4 0
第 3 行与矩阵中的行数类似。我怎样才能有效地循环这个。
【问题讨论】:
标签: r loops large-data