“如何修复”;textConnection(文本)中出错:所有连接都在使用中;在R?

“如何修复”;textConnection(文本)中出错:所有连接都在使用中;在R?,r,split,R,Split,在R中,我试图读取一个相当大的csv文件(4200KB),但遇到了以下错误。奇怪的是,我以前没有遇到任何问题就运行了相同的命令。唯一的变化是我最近将我的R从3.01更新到了3.03。我不确定这会影响什么 如果有人对如何修复有想法/经验,将不胜感激 > xml2csv(xmlFile,csvFile) Error in textConnection(text) : all connections are in use >traceback() 9 textConnection

在R中,我试图读取一个相当大的csv文件(4200KB),但遇到了以下错误。奇怪的是,我以前没有遇到任何问题就运行了相同的命令。唯一的变化是我最近将我的R从3.01更新到了3.03。我不确定这会影响什么

如果有人对如何修复有想法/经验,将不胜感激

> xml2csv(xmlFile,csvFile)

 Error in textConnection(text) : all connections are in use 

>traceback()

9 textConnection(text) 

8 read.table(text = data, sep = sep, fill = TRUE, row.names = NULL, 
    header = FALSE, blank.lines.skip = FALSE, strip.white = TRUE, 
    col.names = paste("v", sequence(max(x)))) 

7 read.concat(a, names(data[split.col]), sep) 

6 concat.split.compact(data = data, split.col = split.col, sep = sep, 
    drop = drop, fixed = fixed) 

5 concat.split(data[split.cols[x]], split.cols[x], seps[x], drop = TRUE) 

4 FUN(1:686[[125L]], ...) 

3 lapply(seq_along(split.cols), function(x) {
    concat.split(data[split.cols[x]], split.cols[x], seps[x], 
        drop = TRUE)
}) 

2 concat.split.multiple(Y, as.vector(colnames(Y))[-c(1:2)], ":") at IFN_functions.r#115

1 xml2csv(xmlFile, csvFile)

错误消息是相当不言自明的;所有文本连接都在使用:)。您是否在代码中使用其他连接?如果是这样的话,您是否在使用close(con)完成后关闭它们?

打开连接的最大数量限制当前设置为128。它在src/main/connections.c中作为常量/宏连接硬编码到R源代码中


您可以查看Wishlist上发布的R的解决方法:

关闭
文本连接
!阅读
?textConnection
,线索在于
?showConnections
,如果您仔细阅读
?textConnection
,将找到指向该链接!是否使用closeAllConnections()?但是,错误仍然存在,为什么?请参阅下面的评论…您可能在例行程序包更新过程中也更新了“splitstackshape”。
textConnection
是在后来我引入
count.fields
时添加的,用于确定
read.table
最终需要的列数。谢谢!我使用showConnections(),但在那里找不到任何用户创建的连接。在调用xml2csv()函数之前,我使用了closeAllConnections(),但错误仍然存在。>showConnections(all=FALSE)描述类模式文本isopen可读可写>showConnections(all=T)描述类模式文本isopen可读可写0“标准输入”终端“r”文本“打开”是“否”1“标准输出”终端“w”文本“打开”否“是”2“stderr”“terminal”“w”“text”“opened”“no”“yes”当我使用XML包调用xmlRoot(xmlTreeParse(string))并在多个字符串上循环/sapping时,出现了相同的错误。每次调用后添加closeAllConnections()都有效,但可能是一次彻底的攻击。:-)