读取具有左对齐数据但 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
另一种选择是直接从文件中读取它,skip
ping header 行并更改列名称
read.table("yourfile.txt", header=FALSE, skip=1, stringsAsFactors=FALSE,
col.names = c("FactorName", "Type", "Share"))
我有一系列以相同方式格式化的 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
另一种选择是直接从文件中读取它,skip
ping header 行并更改列名称
read.table("yourfile.txt", header=FALSE, skip=1, stringsAsFactors=FALSE,
col.names = c("FactorName", "Type", "Share"))