在R中的另一个矩阵的每一行之后插入一个矩阵

时间:2015-07-28 07:57:09

标签: r list matrix

我必须使用矩阵并且想要准备某种列表,其中在第一矩阵的每一行之后重复第二矩阵。为了创建矩阵,我使用了库" plyr"。这是一个例子:

library(plyr)
# first matrix
a <- c(1,2)
b <- c(1,2)
c <- c(1,2,3)
mat1 <- expand.grid(a= a, b= b, c= c)
mat1 <- mat1[order(mat1$a, mat1$b), ]
mat1

# second matrix
mat2 = matrix(data= c(rep(0, 9)), nrow= 3, ncol= 3) 
mat2

因此生成的txt文件看起来像这样

a=1 b=1 c=1
0 0 0
0 0 0
0 0 0
a=1 b=1 c=2
0 0 0
0 0 0
0 0 0
a=1 b=1 c=3
....

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

你可以这样试试:

tf <- tempfile(fileext = ".csv")
apply(mat1, 1, function(x) {
  df <- setNames(data.frame(mat2, check.names = FALSE), paste(names(mat1), x, sep = "="))
  write.table(df, file = tf, append = TRUE, row.names = FALSE, quote = FALSE)
})