R语言批量导入中国气象数据网站数据
2020-08-09 本文已影响0人
年迈的小怪兽
问题引入
从中国气象数据网站下载的数据是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表里了。