繁体   English   中英

根据 R 中的条件扩展矩阵

[英]Extend matrix based on conditions in 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应该给出该行多少次。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM