我必须使用矩阵并且想要准备某种列表,其中在第一矩阵的每一行之后重复第二矩阵。为了创建矩阵,我使用了库" 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
....
提前感谢您的帮助。
答案 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)
})