對於某個地理區域,我有一個方形和經度網格。但是我只知道這個網格的四個角的經度和緯度值。使用這些我需要計算所有十字線上的經緯度值。所以,我分別在R的緯度和經度上發現了一個嵌套循環程序。無法在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是左上角網格正方形的緯度值。
因此,您可以看到循環首先計算第一行的所有lat,long值然後轉到第二行,然後第三行,依此類推。但是,當我得到兩個程序的導出文本文件時,我會得到包含所有值的單個列。這對我來說沒什麼用處。我試圖用xlsx格式使用sink(「output_long.xlsx」)導出R的輸出結果,但是當我得到excel文件(4-5小時的恆定長循環後),我無法打開它。錯誤消息顯示文件已損壞或文件格式不同。我已經嘗試過3-4次,但徒勞無功。
那麼如何將這兩個程序的結果導出到excel文件中,這樣我就不會在單個列中獲得所有值,而是以適當的矩陣形式(即lat,long的值在每個單元格中對應到lat的值,在網格的相應的十字線中爲long)。
此外,如果有人能告訴我如何將這兩個程序一起運行,以便我可以在同一個文件中的單次運行中獲得lat-long值,那將是非常好的。
水槽創建一個文本文件不是一個Excel文件。你也不需要任何循環。像我< - 0:10; j < - 0:10; res < - expand.grid(startx - cumsum(i)* dx,starty - cumsum(j)* dy)應該可以工作,然後您可以使用write.csv或甚至一個可以創建excel文件的包導出結果。 – Roland