使用Multipe矩阵读取csv文件

时间:2019-05-02 09:40:46

标签: r

我有一个包含许多矩阵的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)

但是,我一次只能导入一个矩阵。请告诉我如何一次将两个矩阵导入矩阵文件。

1 个答案:

答案 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")