如何修改R

时间:2015-10-20 14:41:39

标签: r dataframe

我真的没有找到解决方案,即使它看起来很简单,无论如何

我有一个数据框列表,我有一个非常大的代码(它不仅仅是一个应用程序,或者是一堆for循环和创建表...)我想要应用于每个数据框,到列表的每个元素,

我想在这个列表上做一个循环,并按数据框浏览数据框,但是如何提取当前元素呢?

(我的代码大约有450行,我只是想用下一个名称替换数据框名称,它只是自动的)

dbR<-list()
for (i in datedeb:datefin)
{
   sqlst<-paste("SELECT * FROM `cl4d6-2015/09/",sprintf("%02d",i),"`",sep="")
   nomcl<-paste0("cl",sprintf("%02d",i),sep="")
   dbR[[nomcl]]<-dbGetQuery(db,sqlst)
}


for (i in dbR)
{
   #mycode
}

1 个答案:

答案 0 :(得分:1)

请参阅以下示例代码。

dbR <- sapply(1:30, simplify = FALSE, USE.NAMES = TRUE, FUN = function(i) {
  dt <- dbGetQuery(db, paste("SELECT * FROM `cl4d6-2015/09/",
                             sprintf("%02d", i), "`", sep = ""))
  #mycode
  return(dt)
})

上面的代码将在1:30上运行,类似于for循环,但输出会自动保存为单独的列表条目。我们将数据框列表保存到dbR。您还可以在数据读入后添加在数据帧上运行的代码。

带有sapply()USE.NAMES = TRUE

simplify = FALSE将像lapply一样运行,但会保留列表名称/值。

apply系列功能并不总是直观,但它们功能强大且速度快!他们也很容易转化为并行操作。我建议你对它们感到满意。