我想做类似于Blockwise sum of matrix elements的事情,但是使用任意给定的切割模式。例如,如果行被拆分为row_split = list(block_1=1, block_2=2:3, block_3=4)
,则列将被拆分为col_split = list(block_1=1:3, block_2=4)
,然后输出为2x3
矩阵,每个元素都是块的和。
有什么想法吗?
答案 0 :(得分:0)
一个简单的vapply语句应该可以解决这个问题:
vapply(row_split,function(x){
a<-numeric(4)
a[x]=1
a
},numeric(4))
结果:
block_1 block_2 block_3
[1,] 1 0 0
[2,] 0 1 0
[3,] 0 1 0
[4,] 0 0 1
你需要转置其中一个,但它应该可以解决问题。