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



我有一系列以相同方式格式化的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

我们可以使用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

另一种选择是直接从文件中读取,skip ping标题行并更改列名

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

最新更新