ASCII TOMS グリッド形式のファイルを R に読み込もうとしています。R で開くような方法で読み込むことができました。ただし、iy は線形行列として開きます。ファイルの内容の概要は、次の場所にあります。
[Link](http://www.temis.nl/docs/README_TOMSASCII.pdf)
データ セットのサンプルは、次の場所からダウンロードできます。
[Link](http://www.temis.nl/airpollution/no2col/no2monthscia.php?Year=2005&Month=04)
このデータ セットは 2006 年 1 月のもので、使用する必要のあるものがかなりあるため、簡単にアクセスできるように名前を変更しました。私はそれを使用してそれを読みました:
CCC<-read.csv("no2_200601.asc",header=FALSE,skip=4,sep="\t")
dim(CCC)
[1] 52560 1
各緯度のデータが 1 行になるように、これを R に読み込むにはどうすればよいですか? これは、適切なデータ構造を構築するのに役立つと思います。注: 試してみると、簡単に理解できました:
1 行がタイトルを示すような構造になっていることを意味します。だから私の問題は、次の「lat = ...」の前にこれらすべての要素を1行に読み込むことです。
さらに、これを使用して一連のファイルをループしようとしました:
NO2files<-list.files(pattern=".asc", full.names=TRUE)
f<-lapply(NO2files, function (x) readLines (x))
for (i in 1:length (NO2files)) {
function(x)
i<-readLines(x)
pattern <- "[[:digit:]]+(?=\\sbins)"
m <- regexpr(pattern, i[3], perl=TRUE)
dim <- regmatches(i[3], m)
m <- regexpr(pattern, i[4], perl=TRUE)
dim[2] <- regmatches(i[4], m)
dim <- as.integer(dim)
pattern <- "(?<=undef=).*"
m <- regexpr(pattern, i[2], perl=TRUE)
na_string <- regmatches(i[2], m)
dat1 <- i[-(1:4)]
sep <- grepl("=", dat1, fixed=TRUE)
dat2a <- dat1[sep]
dat2b <- dat1[!sep]
dat2b <- lapply(dat2b, substring,
first=seq(1,nchar(dat2b[1]),4),
last= seq(4,nchar(dat2b[1]),4))
dat2b <- unlist(dat2b)
dat2b <- as.numeric(dat2b)
dat2b[dat2b==as.numeric(na_string)] <- NA
dat2b <- matrix(dat2b, nrow=dim[2], byrow=TRUE)
dat2b <- dat2b[nrow(dat2b):1, ]
}