[英]Forming a new matrix in R based on conditions on the rows of a first matrix
[英]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.