如何画R2(拟合散点图)

就是说站点的值要和对应的数据集的格网的值要对应起来。
或者说从区县角度来看,就是所有的值都用区县对应的PAC来匹配站点监测值,空间上匹配上
具体的步骤:
第一步,首先要将站点展示到GIS中(13-17年),保存成shp文件,然后将shp文件和标准区县文件空间连接(站点做目标文件,区县做连接文件),保存成1.csv.
第二步,使用代码将1.csv和数据集的对应年份的污染值使用merge函数提取连接合并。

fun <- function(input,station_TAP_spation,output){
  bb <- dir(input)
  cd <- paste(input,bb,sep = "")
  
  station_TAP <- read.csv(station_TAP_spation,header = T)
  
  for (i in 1:length(cd)){
    read_TAP <- read.csv(cd[i],header=T)
    names(read_TAP)[1] <- 'mcode_county' 
    station_TAP_merge_county <- merge(station_TAP,read_TAP,by = 'mcode_county',all = F)
    
    #写入时间
    d <- substring(cd[i],nchar(cd[i])-11)
    date <- substring(d,1,8)
    
    #合并起来
    hb <- cbind(station_TAP_merge_county,date)
    
    #输出文件
    filename <- paste(output,date,'.csv',sep = "")
    write.csv(hb,filename,row.names = F)
    print(i)
  }
}

第三步,将第二步的结果分别合并到对应的年份,一个年份一个合并文件,不想要的列或者不符合的列名可以在此进行修改。

fun <- function(input,output){
  bb <- dir(input)
  cd <- paste(input,bb,sep="")
  
  m <- NULL
  for(i in 1:length(cd)){
    dd <- read.csv(cd[i],header=T)
    m <- rbind(m,dd)
    print(i)
  }
  names(m)[6] <- "TAP"  #修改名称
  m <- m[,-c(3,4,5)]  #删除不要的列
  filename <- paste(output,sep="")
  write.csv(m,filename,row.names = F)
}

第三步,将污染区县的值和站点的监测值通过日期和站点编号连接起来,还是用merge函数实现。此时已经有各个年份的站点空间和时间对应的污染的值了

fun <- function(hb_year,station_year_value,output){
  aa <- read.csv(hb_year,header = T)
  bb <- read.csv(station_year_value,header = T)
  cc <- merge(aa,bb,by = c('date','station_code'),all = F)
  
  filename <- paste(output,sep = "")
  write.csv(cc,filename,row.names = F)
  print("successful!")
}

结果如图:
如何画R2(拟合散点图)_第1张图片
第四步,还可以将几个年份都合并起来

fun <- function(input,output){
  bb <- dir(input)
  cd <- paste(input,bb,sep="")
  
  m <- NULL
  for(i in 1:length(cd)){
    dd <- read.csv(cd[i],header=T)
    m <- rbind(m,dd)
    print(i)
  }
  
  filename <- paste(output,sep="")
  write.csv(m,filename,row.names = F)
}

注:
此时可以将结果放在拟合散点图的代码里面进行跑图了。

PS:这个东西困扰了我一个月,终于搞出来了,当然少不了师兄师姐的帮助,感谢师兄师姐!

你可能感兴趣的:(技巧,R语言相关,r语言)