我需要在R中处理一些FORTRAN输出文件。例如,我需要从输出文件中读取20行并忽略空格。然后将它们转换为向量或矩阵。我想知道有没有更好的方法来忽略空格并保持价值观?谢谢! 这是我的Out.txt文件(我只需要最后四列):
CNC HORIZON COMPARTMENT TOTAL ADSORBED DISSOLVED GAS CONC.
CNC (MG/KG) (MG/KG) (MG/L) (MG/L)
CNC --------------------------------------------------------------------------
CNC
CNC
CNC 1 1 0.4062 0.3737 1.210 0.2419E-05
CNC 1 2 0.4942 0.4547 1.472 0.2943E-05
CNC 1 3 0.4930 0.4536 1.468 0.2936E-05
CNC 1 4 0.4812 0.4427 1.433 0.2865E-05
CNC 1 5 0.4682 0.4307 1.394 0.2788E-05
CNC 1 6 0.4550 0.4186 1.355 0.2710E-05
CNC 1 7 0.4418 0.4065 1.315 0.2631E-05
CNC 1 8 0.4286 0.3944 1.276 0.2552E-05
CNC 1 9 0.4154 0.3822 1.237 0.2474E-05
CNC 1 10 0.4022 0.3701 1.198 0.2395E-05
以下是我的方法:
TOT={}
file_out <- file(paste(pth,'/Out.txt', sep=""))
b=readLines(file_out)
dd=as.numeric(ldply(strsplit(b[88334]," "))) # I have to adjust the amount of spaces in
# order to separate numbers out
TOT[1]=dd[10] # It is not always 10
答案 0 :(得分:1)
如果你不介意重新标记列,这是一个非常简单的read.table练习。
b <- read.table("path/to/Out.txt",skip=5)
V1 V2 V3 V4 V5 V6 V7
1 CNC 1 1 0.4062 0.3737 1.210 2.419e-06
2 CNC 1 2 0.4942 0.4547 1.472 2.943e-06
3 CNC 1 3 0.4930 0.4536 1.468 2.936e-06
4 CNC 1 4 0.4812 0.4427 1.433 2.865e-06
5 CNC 1 5 0.4682 0.4307 1.394 2.788e-06
6 CNC 1 6 0.4550 0.4186 1.355 2.710e-06
7 CNC 1 7 0.4418 0.4065 1.315 2.631e-06
8 CNC 1 8 0.4286 0.3944 1.276 2.552e-06
9 CNC 1 9 0.4154 0.3822 1.237 2.474e-06
10 CNC 1 10 0.4022 0.3701 1.198 2.395e-06