Saya mencoba mengumpulkan banyak matriks (dimensi berbeda) ke dalam daftar dan kemudian menulis daftar itu ke file teks, dengan jeda baris di antara setiap matriks. Berikut adalah contoh dummy:

x <- matrix(0, nrow=2, ncol=7)
y <- matrix(0, nrow=7, ncol=7)
z <- matrix(0, nrow=4, ncol=7)
n_y <- t(matrix(nrow(allpar12), nrow(allpar12))) #just need a 1x2 matrix with the nrow(x) in each cell, this probably isn't the best way to do it.
test <- list(x, y, y, n_y, z)

lapply(test, cat, "\n", file="test.txt", append=T)

File teks terlihat seperti ini: keluaran

Tampaknya matriks sedang dicetak sebagai vektor. Bagaimana saya bisa mengubah kode sehingga mereka mencetak sebagai matriks?

Terima kasih!

r
0
katcat 21 Maret 2019, 21:33

1 menjawab

Jawaban Terbaik

Mencoba

create_text <- function(m){
  res <- ""
  m <- formatC(m, width = max(nchar(trunc(m))), flag = "", format = "d")
  for(i in 1:nrow(m)){
     res <- paste0(res, paste0(paste(as.character(m[i, 1:ncol(m)]), collapse = "\t"), "\n"))
  }
  return(res)
}

text <- lapply(test, create_text)

writeLines(unlist(text), "listmat.txt")
0
jimbalan 22 Maret 2019, 08:02