读取具有左对齐数据但 R 中空格数不一致的 txt 文件

read txt files with left-aligned data but inconsistent number of spaces in R

我有一系列以相同方式格式化的 txt 文件。 前几行都是关于文件信息的。没有变量名。如您所见,因子之间的空格不一致,但列左对齐或右对齐 aligned.I 知道 SAS 可以直接读取这种格式的数据,想知道 R 是否提供任何类似的功能。

我尝试了 read.csv 函数来加载这些数据,我想将它们保存在具有 3 列的 data.frame 中,结果是选项 sep = "\s"(多个空格)在函数中无法识别正则表达式。

所以我尝试先读取变量中的这些数据,然后使用 substr 函数将它们拆分如下。 步骤1

 Factor<-data.frame(substr(Share$V1,1,9),substr(Share$V1,9,14),as.numeric(substr(Share$V1,15,30)))

步骤 2

但这很不智能,需要计算空格。 想知道有没有什么方法可以直接加载三列数据

    > Factor
   F  T      S
1   +B2P       A     1005757219
2   +BETA      A      826083789

我们可以用read.table把它读成3列

read.table(text=as.character(Share$V1), sep="", header=FALSE, 
                 stringsAsFactors=FALSE, col.names = c("FactorName", "Type", "Share"))
#  FactorName Type      Share
#1       +B2P    A 1005757219
#2      +BETA    A  826083789
#3       +E2P    A  499237181
#4      +EF2P    A   38647147
#5     +EFCHG    A  866171133
#6    +IL1QNS    A  945726018
#7    +INDMOM    A  862690708

另一种选择是直接从文件中读取它,skipping header 行并更改列名称

read.table("yourfile.txt", header=FALSE, skip=1, stringsAsFactors=FALSE,
              col.names = c("FactorName", "Type", "Share"))