R 将文本文件解析为fscanf?

R 将文本文件解析为fscanf?,r,R,我有一个大的文本文件,我想在R中导入多模式数据,编码如下: A=1,B=1,C=2,... A=2,B=1,C=1,... A=1,B=2,C=1,... 我想要的是类似于以下内容的数据帧: A B C 1 1 2 2 1 1 1 2 1 由于每行的列名都在不断重复,我想知道是否有一种方法可以使用fscanf功能导入该文本文件,以解析a、B、C列名,例如“a=%d,B=%d,C=%d,…” 或者有一种更简单的方法使用read.table或sca

我有一个大的文本文件,我想在R中导入多模式数据,编码如下:

A=1,B=1,C=2,...
A=2,B=1,C=1,...
A=1,B=2,C=1,...
我想要的是类似于以下内容的数据帧:

A    B    C
1    1    2
2    1    1
1    2    1
由于每行的列名都在不断重复,我想知道是否有一种方法可以使用fscanf功能导入该文本文件,以解析a、B、C列名,例如“a=%d,B=%d,C=%d,…”

或者有一种更简单的方法使用read.table或scan?但我不知道怎么做

感谢您提供的任何提示

1)读取。gsubfn包中的模式
读取。模式
与您的要求非常接近。指定图案时,使用
(\\d+)
代替
%d
。如果列名不重要,
col.names
参数可以省略

library(gsubfn)    
L <- c("A=1,B=1,C=2", "A=1,B=1,C=2", "A=1,B=1,C=2") # test input

pat <- "A=(\\d+),B=(\\d+),C=(\\d+)"
read.pattern(text = L, pattern = pat, col.names = unlist(strsplit(pat, "=.*?(,|$)")))
1a)百分比格式为了好玩,我们可以使用问题中给出的格式来实现它

fmt <- "A=%d,B=%d,C=%d"
pat <- gsub("%d", "(\\\\d+)", fmt)
3)read.csv更简单的是,这种仅基于基础的解决方案删除标题,并按照先前的解决方案中的设置列名来读取剩下的内容。如果列名不重要,请再次省略
col.names
参数

read.csv(text = gsub("\\w*=", "", L), header = FALSE,
  col.names = unlist(strsplit(L[1], "=.*?(,|$)")))

非常感谢,我用它工作了3)。我使用了L=readLines('mydata.txt')。但是我不得不禁用col.names。我以后再解决!
DF <- strapply(L, "\\d+", as.numeric, simplify = data.frame)
names(DF) <- unlist(strsplit(L[1], "=.*?(,|$)"))
read.csv(text = gsub("\\w*=", "", L), header = FALSE,
  col.names = unlist(strsplit(L[1], "=.*?(,|$)")))