警告:正在关闭未使用的连接。\n

getcommentation=function(){
Commentation=readLines(文件(“C:\\Commentation\\com.txt”))
报税表(评注)
关闭(读线)
closeAllConnections()
}

我不知道这个函数有什么问题。当我在R中运行此命令时,它不断给我以下警告:

警告消息:
关闭未使用的连接5(“C:\\commentation\\com.txt”)

readLines()是一个函数,您不必关闭它。您想关闭由file()函数打开的连接。此外,在关闭任何连接之前,您正在return()ing。就函数而言,return()语句后面的行不存在

一个选项是保存file()调用返回的对象,因为您不应该只关闭函数打开的所有连接。以下是一个非功能版本来说明这一想法:

R>cat(“foobar\n”,file=“foo.txt”)
R>con<-文件(“foo.txt”)
R>out<-读线(con)
R>出来
[1] “foobar”
R>关闭(con)

然而,为了编写函数,我可能会采取稍微不同的策略:

getcommentation<-函数(文件路径){
con<-文件(文件路径)
打开。退出(关闭(con))
评论<-阅读行(con)
实况报道
}

如下所示,将上面创建的文本文件作为示例文件进行读取

R>GetCommentation(“foo.txt”)
[1] “foobar”

我在.exit()上使用了on,这样一旦创建了con,如果函数出于任何原因终止,连接就会关闭。如果在最后一行之前的close(con)语句中保留此选项,例如:

评论&lt-读线(con)
关闭(con)
实况报道
}

函数可能在调用readLines()时失败并终止,因此连接不会关闭on.exit()将安排关闭连接,即使函数提前终止

发表评论