1

我有一系列以相同方式格式化的 txt 文件。前几行都是关于文件信息的。没有变量名。如您所见,因子之间的空格不一致,但列左对齐或右对齐。我知道 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
4

1 回答 1

0

我们可以用read.table3 列来阅读它

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 标题行并更改列名

read.table("yourfile.txt", header=FALSE, skip=1, stringsAsFactors=FALSE,
              col.names = c("FactorName", "Type", "Share"))
于 2016-07-27T07:23:51.617 回答