4

在使用 rnotebook 时,通过扫帚获取线性回归模型的输出时出现以下错误。

这是我遇到的一个虚拟示例:

    N <- 100
a <- rnorm(N)
b <- a + rnorm(N)
df1 <- data.frame(a, b)

lModel <- lm(b ~ a, df1)

summary(lModel)

然后,如果我想获得 tidy(lModel) 的输出,则会收到错误消息:

tempfile 中的错误(pattern = "_rs_rdf_",tmpdir = outputFolder,fileext = ".rdf"):临时名称太长

问题是我不久前使用了tidy()扫帚的功能并获得了输出。我想知道可能是什么问题,以及如何解决。

这是上面错误的回溯:

Error in tempfile(pattern = "_rs_rdf_", tmpdir = outputFolder, fileext = ".rdf") : temporary name too long
4.
tempfile(pattern = "_rs_rdf_", tmpdir = outputFolder, fileext = ".rdf")
3.
overridePrint(o$x, o$options, o$className, o$nRow, o$nCol)
2.
print.data.frame(x)
1.
function (x, ...) UseMethod("print")(x)

提前非常感谢。

4

2 回答 2

6

当目录嵌套太多级别时,Windows 系统会发生此错误。Windows API 的最大路径长度为 260 个字符

最大路径长度限制 在 Windows API 中(以下段落中讨论了一些例外情况),路径的最大长度为 MAX_PATH,定义为 260 个字符。本地路径按以下顺序构造:驱动器号、冒号、反斜杠、由反斜杠分隔的名称组件和终止空字符。例如,驱动器 D 上的最大路径是“D:\some 256-character path string”,其中“”表示当前系统代码页的不可见终止空字符。(字符 < > 在此处用于视觉清晰,不能作为有效路径字符串的一部分。)

这很容易避免。只需调整您的工作目录或保存临时文件的结构。您的文件名太长,或者您的目录嵌套太深,因此路径超出了 Windows 的路径限制。

顺便说一句,在 Unix 系统上,最大路径明显更长,但最大文件名长度为 255 个字符。

于 2018-01-20T20:55:45.683 回答
3

这可以通过在 Windows 10 上更改注册表来解决。

  1. regedit通过在开始菜单中搜索打开注册表编辑工具
  2. 导航Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem
  3. LongPathsEnabled从更改01

现在将忽略 256 个字符的限制。

2018 年 8 月 4 日更新:如果您的 R 工作目录位于 Google Drive File Stream 文件夹中,则仍会执行限制。这是因为 GDFS 是一个有其自身限制的虚拟驱动器。

于 2018-04-24T02:03:49.563 回答