天天看点

R语言批量读取txt文件并合并

气象数据处理-R语言批量读取txt数据并合并

处理地面气候资料日值数据集v3.0

数据集以月为单位存储,每个月是一个单独的文件,上图、

R语言批量读取txt文件并合并

在处理数据过程中,我们往往会将单独的数据合并到一起做进一步分析,R语言仅需两步,可以轻松实现(替代 打开文本–复制粘贴—吐血)

setwd("E:/Rstation/test2")
library(tidyverse)
library(readxl)
library(writexl)
#筛选出所有数据文件,以“SURF_CLI_CHN_MUL_DAY-PRE”为搜索关键词-----
flies=list.files(pattern = "SURF_CLI_CHN_MUL_DAY-PRE")
# 批量读取,按行合并
df = map_dfr(flies, read.table)
#写出数据
write_table(df, "xxx.txt")
           

最终结果(可根据需要导出)

R语言批量读取txt文件并合并

刚试了下以上方法,运行速度有点慢啊,参考别人代码,写了个循环,这个运行速度还挺快。

filest <- list.files(pattern = "SURF_CLI_CHN_MUL_DAY-TEM")
filelent <- length(filest)
newdatat <- c()
for (i in 1:3) {
  temp <- read.table(filest[i])
  newdatat=rbind(newdatat,temp)
}
names(newdatat) <- c("station", "lat", "lon", "eleva", "year", "month", "day", "avet", "maxt", "mint")
head(newdatat)
> head(newdatat)
  station  lat   lon eleva year month day avet maxt mint
1   50136 5258 12231  4330 2010     1   1 -311 -254 -385
2   50136 5258 12231  4330 2010     1   2 -314 -238 -367
3   50136 5258 12231  4330 2010     1   3 -288 -229 -332
4   50136 5258 12231  4330 2010     1   4 -309 -227 -362
           

读取文本文件,以空格为分隔符,可以直接写read.table(xxx.txt),不然会出错。

继续阅读