在sqldf中使用列表名称?

时间:2018-06-25 03:41:34

标签: r

名称已附加到数据帧列表clusts的五个元素中,如下所示:

names(clusts) = paste("clust",1:length(clusts),sep="")

名称是所需的:

print(names(clusts))

"clust1" "clust2" "clust3" "clust4" "clust5"

但是-就像人们可能猜到的那样-这些名称的范围仅限于列表本身-特别是在全局范围内不可见:

print(ls())

"clusts"  (and others..)  

这将导致sqldf无法“看到”这些数据框。是否有办法使它们在全局范围内可见(从而在sqldf上也可见)?

更新对每个@thelatemail评论使用with进行了尝试:

with(clusts,
    meanDfs2<-lapply(clustxs, function(clustx) {
        clust = clustx[[1]]; x = clustx[[2]]
        return(ssql(str('select cid, count(1) cnt from clust',x,' group by cid order by 2 desc')))
    })
)

但是它似乎不起作用:

Error in rsqlite_send_query(conn@ptr, statement) : no such table: clust1

这是一个好主意!

1 个答案:

答案 0 :(得分:2)

像这样使用envir=的{​​{1}}参数:

sqldf