这个
sqldf::read.csv.sql()
功能一直很有用
retrieving only a small portion of a large CSV
.
但是,连接将保持打开状态,并最终产生以下警告(运行几次后):
警告消息:
关闭未使用的连接11(C:\Users\wibeasley\AppData\Local\Temp\asfasdf\fileasdfasdf)
recommended
发行
base::closeAllConnections()
.
有没有新的方法可以选择性地只关闭由创建的连接
sqldf::读取.csv.sql()
?
path <- tempfile()
write.csv(mtcars, file=path, row.names=F)
# read.csv(path)
ds <- sqldf::read.csv.sql(path, "SELECT * FROM file", eol="\n")
base::closeAllConnections() # I'd like to be more selective than 'All'.
unlink(path)
真正的代码是中间的两行。前三行设置了假装文件。决赛
base::unlink()
删除临时CSV。
我试图传递一个现有的文件连接(这样我以后可以显式地关闭它),但当我多次运行它时,它仍然保持打开状态:
警告消息:
1:内部(系统调用(which)):关闭未使用的连接13()
path <- tempfile()
write.csv(mtcars, file=path, row.names=F)
ff <- base::file(path) # Create an explicit connection.
ds <- sqldf::read.csv.sql(sql="SELECT * FROM ff")
base::close(ff)
unlink(path)