Использовать список имен в sqldf? - PullRequest
0 голосов
/ 25 июня 2018

Имена были прикреплены к пяти элементам списка фреймов данных clusts следующим образом:

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

Имена по желанию:

print(names(clusts))

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

Однако - как одинМожно предположить - эти имена ограничены областью действия самого списка - и, в частности, не видны в глобальной области видимости:

print(ls())

"clusts"  (and others..)  

Это приводит к тому, что sqldf не может «видеть» эти кадры данных.. Есть ли способ сделать их видимыми в глобальной области видимости (и, следовательно, sqldf)?

Обновление Попытка использования with для комментария @thelatemail:

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 голосов
/ 26 июня 2018

Используйте аргумент envir= sqldf, например:

sqldf("select * from clust1", envir = list2env(clusts))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...