jkp*_*jkp 2 r header read.table
我正在尝试使用read.table读取R中的文件(ascii)该文件如下所示:
DAILY MAXIMUM TEMPARATURE
YEAR DAY MT DT LAT. 66.5 67.5 68.5 69.5 70.5
1969 001 01 01 6.5 99.90 99.90 31.90 99.90 99.90
1969 001 01 01 7.5 99.90 20.90 99.90 99.90 23.90
1969 001 01 01 8.5 99.90 99.90 30.90 99.90 18.90
.....
.....
YEAR DAY MT DT LAT. 66.5 67.5 68.5 69.5 70.5
1969 001 01 02 6.5 21.90 99.90 99.90 99.90 99.90
1969 001 01 02 7.5 99.90 33.90 99.90 99.90 99.90
1969 001 01 02 8.5 99.90 99.90 15.90 99.90 99.90
.....
.....
YEAR DAY MT DT LAT. 66.5 67.5 68.5 69.5 70.5
1969 001 01 03 6.5 99.90 99.90 99.90 99.90 99.90
1969 001 01 03 7.5 99.90 99.90 99.90 99.90 99.90
1969 001 01 03 8.5 99.90 99.90 99.90 99.90 99.90
.....
.....
Run Code Online (Sandbox Code Playgroud)
我用它读了:
inp=read.table("MAXT1969.TXT",skip=1,header=T)
Run Code Online (Sandbox Code Playgroud)
该文件已被读取,内容位于变量inp中.
我有2个问题 -
I.查看前5列的命令会提供一些额外的信息以及所需的输出,例如,inp [1,5]给出以下输出:
> inp[1,5]
"[1] 6.5
33 Levels: 10.5 11.5 12.5 13.5 14.5 15.5 16.5 17.5 18.5 19.5 20.5 21.5 ... LAT."
Run Code Online (Sandbox Code Playgroud)
我不想要额外的信息,只需要价值.我哪里错了?
II.每隔32行,我就有一个标题(YEAR DAY ....).如何定期忽略读取标题?
试试comment.char="Y"这将使read.table忽略开头的所有行Y.
stringsAsFactors=FALSE将避免将字符串转换为因子.
inp <- read.table("MAXT1969.TXT", skip = 1, header=FALSE, comment.char="Y", stringsAsFactors=FALSE )
#Read just first row to get header names
cols <- read.table("MAXT1969.TXT", header=FALSE, skip=1, nrows=1 )
names(inp) <- cols
inp
## YEAR DAY MT DT LAT. 66.5 67.5 68.5 69.5 70.5
## 1 1969 1 1 1 6.5 99.9 99.9 31.9 99.9 99.9
## 2 1969 1 1 1 7.5 99.9 20.9 99.9 99.9 23.9
## 3 1969 1 1 1 8.5 99.9 99.9 30.9 99.9 18.9
## 4 1969 1 1 2 6.5 21.9 99.9 99.9 99.9 99.9
## 5 1969 1 1 2 7.5 99.9 33.9 99.9 99.9 99.9
## 6 1969 1 1 2 8.5 99.9 99.9 15.9 99.9 99.9
## 7 1969 1 1 3 6.5 99.9 99.9 99.9 99.9 99.9
## 8 1969 1 1 3 7.5 99.9 99.9 99.9 99.9 99.9
## 9 1969 1 1 3 8.5 99.9 99.9 99.9 99.9 99.9
#Since the stringsAsFactor = FALSE was used numbers were read correctly.
inp[1, 5]
## [1] 6.5
Run Code Online (Sandbox Code Playgroud)