1
我正在生成显示用R计算的表格和图形的重复性HTML报告。我正在使用嵌入在for循环中的R2HTML包中的函数。我的机器上没有管理员权限。 同时在计算某一时刻,我有时会收到以下错误:R2HTML无法打开连接
错误的文件(文件,ifelse(追加,“A”,“W”)): 无法打开连接 另外:警告消息: 在文件(文件,ifelse(追加, “A”, “W”)): 无法打开文件 'P:/我的文档/ R/test.html的':权限被拒绝
这不会在每次运行中发生,也不会发生在代码中的同一时刻。 我可以得到同样的错误,当我尝试运行下面的简单代码:
require(R2HTML)
.HTML.file = file.path('P:/My Documents/R' , 'test.html')
# To set the access path to the HTML file that will be created
cat(paste("<html><head><title>", 'test.html', "</title></head>", sep = ""), file = .HTML.file , append = FALSE)
# To create and initiate the HTML file
for(i in 1:100)
{
HTML('Test')
}
# To write the same line to the HTML file repeteadly
大多数的这种循环可以运行没有任何问题的时间,但有时它会产生上述错误(有时之初循环,有时在最后)。 有人知道是什么原因造成的吗?我在Windows XP专业机器上使用R-2.15.0。如果有人能帮助我,我会非常感激。 谢谢。
我以前有过这个。发生这种情况的原因是,当操作系统仍未完成上一个操作时,您正在尝试写入(追加)文件。要解决这个问题,可能你最好的选择是将数据追加到内存中的对象,然后只在循环完成时写入文件。 – Andrie
我看到...但是我使用R2HTML包(HTML.data.frame,HTMLplot)中的一些特定函数以特定顺序将数据框架,图形和文本附加到HTML文件。如果我只是写文本,我想我可以将它附加到内存中的一个变量,并且只使用一个调用HTML函数来导出它,但在这里我不确定我可以做那样的事情。如果问题来自追加文件太快,你知道是否有办法告诉R在计算中的某些特定点放慢速度?无论如何,非常感谢您的回答。 – Vidac
您正在写入一个HTML文件,它只是文本。所以明确地追加到角色矢量中是完全一样的。简单地捕获HTML()的输出,并使用'c()'将它与以前的结果相结合。然后在循环结束时将其转储到文件。这真的有用 - 我已经做到了。 – Andrie