全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
1380 5
2020-09-10
latzone <- function(stg, lat1, lat2){

   wq <- get(paste("TS", stg ,sep = ""))

   if(lat1 == -15 & lat2 == 15){
  assign(paste("pltd", lat2, stg, "-" , sep = ""),
         subset(wq, paleolat > lat1 & paleolat < lat2) )
  }else{
  assign(paste("pltd", lat2, stg, "-" , sep = ""),
           rbind(subset(wq, paleolat > lat1 & paleolat < lat2),
                 subset(wq, paleolat > -lat2 & paleolat < -lat1)))
  }
}

这是我编写的函数,其中wq <- get(paste("TS", stg ,sep = ""))都是数据框,目的是按照lat1和lat2的范围来进行子集划,并得到子集划后的数据框。问题是,我使用以上函数进行运算,并无子集划后数据框的一个返回值,请问我改如何修改我的代码?感谢!

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2020-9-10 22:28:38
results <-  if(lat1 == -15 & lat2 == 15){
  assign(paste("pltd", lat2, stg, "-" , sep = ""),
         subset(wq, paleolat > lat1 & paleolat < lat2) )
  }else{
  assign(paste("pltd", lat2, stg, "-" , sep = ""),
           rbind(subset(wq, paleolat > lat1 & paleolat < lat2),
                 subset(wq, paleolat > -lat2 & paleolat < -lat1)))

return(results)
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2020-9-11 11:54:38
卫队000 发表于 2020-9-10 22:28
results  lat1 & paleolat < lat2) )
  }else{
  assign(paste("pltd", lat2, stg, "-" , sep = ""),
感谢! 进一步追问:如何能让其出现在Global Environment的Data里面?而不是控制台
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2020-9-11 12:46:42
问题已经解决: 自编函数结合 for 循环 实现了我的目的。代码如下:
######导出“子集化之后”的文件######
latzone <- function(stg, lat1, lat2){
  
  wq <- get(paste("TS", stg ,sep = ""))
  
  results <- if(lat1 == -15 & lat2 == 15){
    subset(wq, paleolat > lat1 & paleolat < lat2)
  }else{
    rbind(subset(wq, paleolat > lat1 & paleolat < lat2),
          subset(wq, paleolat > -lat2 & paleolat < -lat1))
   
  }
  return(results)
}


for (i in 17:24) {
  
  for (lat1 in c(-15,15,30,45)) {
   
    for (lat2 in c(15,30,45,90)) {
      if (lat2-lat1 == 30 | lat2-lat1==15 | lat2-lat1==45){
        
        assign(paste("pltd", i,  lat1, lat2,  sep = ""),latzone(stg = i, lat1, lat2))
      }
      
    }
   
  }
  
}
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2020-9-12 12:47:07
ssign(paste("pltd", lat2, stg, "-" , sep = ""),
           rbind(subset(wq, paleolat > lat1 & paleolat < lat2),
                 subset(wq, paleolat > -lat2 & paleolat < -lat1)), envir = .GlobalEnv)
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2020-9-12 13:48:14
katymeala 发表于 2020-9-12 12:47
ssign(paste("pltd", lat2, stg, "-" , sep = ""),
           rbind(subset(wq, paleolat > lat1 & paleo ...
感谢,我学到了很多
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群