"长度为零的论点"在R

时间:2016-11-05 22:27:28

标签: r

I have a data like this and i dont know how to make plot with it, so i wirte a script to change to another form

这是dput(head(e1))的结果:

structure(list(lon = c(-26.583, -26.25, -26.417, -67.25, -67.25, 
-67.417), lat = c(-59.083, -58.417, -58.417, -55.917, -55.75, 
-55.75), pre1 = c(105.4, 106.3, 106.6, 73.1, 68.7, 70.2)), .Names = c("lon", 
"lat", "pre1"), row.names = c(NA, 6L), class = "data.frame")

第一列是经度,第二列是纬度,第三列是此点的降水值。我想要做的是通过这些数据制作地图,但我不知道如何处理这种格式,所以我想把它改成三个矩阵:一个用于经度,一个用于纬度,一个用于降水,而且我可以使用函数image.plot(lon,lat,pre1)制作降水图。

这是我的剧本:

rerange<-function(e1) {
latq<-sort(e1$lat,decreasing = T)
latq<-as.matrix(latq)
latq1<-unique.matrix(latq)
lonq<-sort(e1$lon)
lonq<-as.matrix(lonq)
lonq1<-unique.matrix(lonq)
lenlon<-length(lonq1)
lenlat<-length(latq1)
finalq<-matrix(0,lenlon,lenlat)
for (i in 1:lenlat) {
  for (j in 1:lenlon) {
      finalq[i,j]<-e1$pre1[e1$lon == lonq1[j] & e1$lat == latq1[i] ]
    }
  }
return(finalq)
}

但它会返回如下错误:

Error in finalq[i, j] <- e1$pre1[e1$lon == lonq1[j] & e1$lat == latq1[i]] : 
replacement has length zero

我尝试过其他方法,但是我无法弄清楚错误。我怎么能解决它?非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

好的,检查你的数据,我认为这或多或少是你的目标:

lg

这是你需要的吗?