【发布时间】:2014-08-31 14:17:53
【问题描述】:
我正在使用 sqldf 包注释几个数据帧。 注释数据位于数据框 annot 中。 我使用INNER JOIN通过id值选择对应的信息
为了自动化这个过程,我写了下面的代码:
prepareAnnot <- function(x){
annoted <- sqldf("SELECT x.*,
annot.*
FROM x INNER JOIN annot
ON x.id = annot.id;")
return(annoted)}
我将 5 个数据框(A、B、C、D、E)放入一个列表中,并想应用 prepareAnnot 函数 并将带注释的数据保存在后缀为“annotated”的新数据框中
myresults <- list(A=A,B=B,C=C,D=D,E=E)
for (i in seq_along(myresults)){
assign (paste(names(myresults)[i],"annotated",sep="_"),prepareAnnot(myresults[i]))
}
但是,prepareAnnot 函数似乎无法识别我列表中的数据框名称。 我收到以下错误消息:
Error in sqliteExecStatement(con, statement, bind.data) :
RS-DBI driver: (error in statement: no such table: x)
我应该如何正确地将列表中的数据框名称传递给函数?
【问题讨论】: