R语言批量导入中国气象数据网站数据

问题引入

从中国气象数据网站下载的数据是TXT格式,以空格隔开,但是不同列之间的空格数不一致。如下图:


捕获.PNG

用read.table()函数读取会出现一些问题,而scan函数却可以完美解决问题。

数据导入

链接到数据所在文件夹,获取数据名

setwd('E:/1data/站点数据/气象网数据')
tem.name<-list.files(pattern = '*.TXT')

数据处理

先设置一个空的数据框,接着执行循环。对于文件夹中每一个文件,先执行scan函数(默认参数是跳过空格符,不需要额外设置了),逐行读取所有空格符隔开的数据并保存到列表里。接着用matrix函数将列表转化为矩阵,其中nrow参数表示将数据设置为多少行。因为数据列数是固定的13列,因此用总数据长度比上列数。最后rbind函数合并所有年份数据即可。

tem.data<-data.frame()
for (f in tem.name) {
  x=scan(f)
  y=matrix(x,nrow = length(x)/13, byrow = TRUE)
  tem.data=rbind(tem.data,y)
}

导出数据

write.csv(tem.data,'E:/1data/站点数据/气象网数据/气温/气温.csv')

小结

这样就将txt数据导入到一张excel表里了。

你可能感兴趣的:(R语言批量导入中国气象数据网站数据)