无法在 R 中导出所需的结果

Not able to export the desired results in R

我有一个地理区域的纬度和经度方形网格。但是我只知道这个网格的 4 个角的纬度和经度值。使用这些我需要计算所有十字线的经纬度值。所以,我在R中单独制作了一个嵌套循环程序,用于纬度和经度。

   tllong<-67.481961

   sink("output_long.txt")
   for (i in c(1:11447)) {
     for (j in c(1:10335)) {
       tllong<- 67.481961 + (j-1)*0.0030769
       print(tllong)
     }

    }
    sink()

以上程序是计算经度的。 tllong 是网格左上角的经度值。 11447是纬度数,10335是经度数

同样,我创建了一个计算纬度的程序。

    tllat<-36.348639

    sink("output_lat_again.txt")
    for (i in c(1:11447)) {
      for (j in c(1:10335)) {
        print(tllat)
      }
      tllat<- tllat - (i-1)*0.002508
    }
    sink() 

tllat是左上角网格方块的纬度值。

正如您所见,循环首先计算第一行的所有经纬度值,然后转到第二行,然后是第三行,依此类推。但是,当我获得两个程序的导出文本文件时,我得到一个包含所有值的列。这对我来说用处不大。我尝试使用 sink("output_long.xlsx")xlsx 格式导出 R 的输出结果,但是当我得到 excel 文件(经过 4-5 小时的持续 运行 循环)我无法打开它。错误消息显示文件已损坏或文件格式不同。我已经尝试了 3-4 次,但没有成功。

那么我如何将这两个程序的结果导出到 excel 文件中,这样我就不会在单个列中获得所有值,而是以适当的矩阵形式(即 lat 的值,每个单元格中的 long 对应于 lat 的值,long 在网格的相应十字线中)。

此外,如果有人能告诉我如何 运行 这两个程序一起使用,这样我就可以在同一个文件中的单个 运行 中获取经纬度值,那就太好了。

您似乎想要创建 10335*11447=118304745 对 lat/lon 值。这是一个相当大的数字。那是对的吗?但是,我将展示应用于较小示例的过程。试试这个:

#setting the values of parameters
tllong<-67.481961
tllat<-36.348639
deltalong<-0.0030769
deltalat<-0.002508
#small example: you can set the following to the real values
nlong<-10
nlat<-10
#create vectors of values without loops 
lat<-seq(tllat,by=deltalat,length.out=nlat)
lon<-seq(tllong,by=deltalong,length.out=nlong)
#now we build every possible pair of lat/lon values
latlong<-expand.grid(lon=lon,lat=lat)
#we export it to a csv file
write.csv(latlong,"somefile.csv",row.names=FALSE,quote=FALSE)

最后,将创建 somefile.csv。请记住,使用您的值,创建的文件将非常大。