我有一个矩阵
[,1] [,2]
[1,] 1 3
[2,] 4 6
[3,] 11 12
[4,] 13 14
我想将此矩阵转换为这样的向量:
# indices 1-6, 11-14 = 1, gap indices 7-10 = 0
xx <- c(1,1,1,1,1,1,0,0,0,0,1,1,1,1)
想法:矩阵的值从 1 到 14。向量的长度也是 14。如果假设第一列是start,第二列是end,那么对于矩阵中存在的那些范围,即,1-3、4-6、11-12、13-4(或等效为 1-6、11-14),我希望这些索引处的值在我的输出向量中为 1。和差距应该在我的输出向量中的索引 7-10 处具有 0 值。(感谢编辑)
但是,有时矩阵不会给出矩阵中的最后一个值。但是,我总是知道转换后的大小,比如说,在这种情况下,是 20。那么,结果向量应该是这样的:
# indices 1-6, 11-14 = 1, gap indices 7-10 = 0, indices 15-20 = 0
xx <- c(1,1,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,0,0)
我怎么能在没有循环的情况下做到这一点?我的矩阵很长,我尝试使用循环很慢。