我有一个包含许多矩阵的csv文件。例如,
A B C
A 0 3 4
B 5 0 7
C 7 8 0
A B C D
A 0 3 4 5
B 5 0 7 9
C 7 8 0 5
D 7 8 6 0
所有矩阵都由空白行分隔。
我想一次将这两个矩阵导入矩阵文件。 像这样的一些代码
my_data <- read.csv("file.csv",head=TRUE, row.names =1 )
my_matrix <-as.matrix(my_data)
但是,我一次只能导入一个矩阵。请告诉我如何一次将两个矩阵导入矩阵文件。
答案 0 :(得分:0)
这仅对文件进行一次物理读取,然后从其读取的内容中提取两个矩阵。使用末尾在注释中创建的文件,使用L
将其读入readLines
,然后找到分隔行ix
的索引。然后两次读取字符向量L
。
L <- trimws(readLines("myfile.dat"))
ix <- which(nchar(L) == 0)[1]
m1 <- read.table(text = L, nrows = ix-2)
m2 <- read.table(text = L, skip = ix)
这会多次读取文件,但代码略短。
ix >- which(count.fields("myfile.dat") == 0)[1]
m1 <- read.table("myfile.dat", nrows = ix-2)
m2 <- read.table("myfile.dat", skip = ix)
以可重复形式输入:
Lines <- "A B C
A 0 3 4
B 5 0 7
C 7 8 0
A B C D
A 0 3 4 5
B 5 0 7 9
C 7 8 0 5
D 7 8 6 0"
cat(Lines, file = "myfile.dat")