基于 R 中的条件扩展矩阵

迈克尔

考虑以下随机矩阵:

m <- cbind(c("r1","r2","r3","r4","r1","r2","r3","r4"),c(3,2,5,2,5,2,6,4))

我想根据条件扩展它。例如,如何在带有单元格“r4”的每一行下创建一个额外的行,其中的值与带有单元格“r4”的行中的值完全相同。因此,我最终会得到以下矩阵:

m <- cbind(c("r1","r2","r3","r4","r4","r1","r2","r3","r4","r4"),c(3,2,5,2,2,5,2,6,4,4))

基基

您可以使用rep复制单元格r4喜欢的每一行

m[rep(seq_len(nrow(m)), 1 + (m[,1] == "r4")),]
#      [,1] [,2]
# [1,] "r1" "3" 
# [2,] "r2" "2" 
# [3,] "r3" "5" 
# [4,] "r4" "2" 
# [5,] "r4" "2" 
# [6,] "r1" "5" 
# [7,] "r2" "2" 
# [8,] "r3" "6" 
# [9,] "r4" "4" 
#[10,] "r4" "4" 

m[,1] == "r4"给出一个逻辑向量,你可以在其中加 1 来告诉rep应该给这行多少次。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章