R 从txt文件中提取矩阵

R 从txt文件中提取矩阵,r,matrix,R,Matrix,我在txt文件(T1.txt)中有以下模型摘要: 我们必须考虑到txt文件背后的模型已经不存在了(我只有txt文件)。此外,矩阵大小可以从一个文件到另一个文件,其行数不必等于列数。我们可以使用readLines,grep读取文件,找到具有“混淆矩阵”的行,将行子集,使用gsub删除子字符串,并使用read.table lines <- readLines('Avi.txt', warn=FALSE) i1 <- grep('Confusion Matrix', lines) read

我在txt文件(T1.txt)中有以下模型摘要:


我们必须考虑到txt文件背后的模型已经不存在了(我只有txt文件)。此外,矩阵大小可以从一个文件到另一个文件,其行数不必等于列数。

我们可以使用
readLines
grep
读取文件,找到具有“混淆矩阵”的行,将行子集,使用
gsub
删除子字符串,并使用
read.table

lines <- readLines('Avi.txt', warn=FALSE)
i1 <- grep('Confusion Matrix', lines)
read.table(text=gsub('(<-|\\|).*', '', 
        lines[(i1+2):length(lines)]), header=TRUE)
#    a  b  c
#1 357 20  7
#2  12 37 11
#3  3  1 29

行基于前面的问题,我想你已经解决了。。文本文件中的内容是否与您显示的完全一致?我可能更愿意使用Perl解决此类问题。@akrun,这两个问题之间的区别在于,在前一个问题中,我有模型,可以分析地提取它,而在这里,我只有txt,没有模型(如问题正文中所述)除非您有成千上万个这样的文件,否则在记事本++之类的东西中使用regex命令功能可能会更容易。您是否在文件中重复此模式?i、 总结之后是混乱矩阵,再次是总结……我想提出一些类似的建议,懒得写出来:)@sebantanta谢谢你的评论。如果有多个实例(OP没有),这将不起作用@Avi如果您有多个实例
i1
> df1
       a   b   c   
     357  20   7 
      12  37  11 
       3   1  29
lines <- readLines('Avi.txt', warn=FALSE)
i1 <- grep('Confusion Matrix', lines)
read.table(text=gsub('(<-|\\|).*', '', 
        lines[(i1+2):length(lines)]), header=TRUE)
#    a  b  c
#1 357 20  7
#2  12 37 11
#3  3  1 29