R CMD安装卡在一个可以正常工作的函数上。。。我如何进一步调试它?

R CMD安装卡在一个可以正常工作的函数上。。。我如何进一步调试它?,r,installation,R,Installation,注意:问题陈述中的许多信息都是无关的,通过解决方案部分中列出的调试步骤,问题已在没有明显原因的情况下得到解决 我很抱歉问了一个关于我无法重现的错误的问题 问题 我的包“PKG”中有一个测试函数“foo.R”;foo.R包括: foo <- function (filename, n) { text <- scan(file = filename, what = "character") if (n==1) text <- gsub("\\#GGG", '\\#', te

注意:问题陈述中的许多信息都是无关的,通过解决方案部分中列出的调试步骤,问题已在没有明显原因的情况下得到解决

我很抱歉问了一个关于我无法重现的错误的问题

问题

我的包“PKG”中有一个测试函数“foo.R”;foo.R包括:

foo <- function (filename, n) {
  text <- scan(file = filename, what = "character")
  if (n==1) text <- gsub("\\#GGG", '\\#', text)
  if (n>1)  text <- gsub("\\#GGG", '', text)
  writeLines(text, con = 'newfn.R')
}
更新

  • 根据答案,\\\不是罪魁祸首

  • 我发现问题是在安装(而不是构建)过程中出现的,为了反映这一点,我修改了问题。我还修复了测试用例中的花括号

  • 此外,我还发现,该函数不仅可以工作,例如在加载source()时

    • 当我创建一个新项目(例如“newproject”)并将功能移动到该项目时,它会安装无误,即:

    • 将foo.R移到newproject/R/foo.R
    • 制作一个新的项目/描述
    • R CMD构建新项目
    • R CMD安装新项目
    • 这就产生了上述错误:

    • R CMD构建包
    • R CMD安装包
  • 响应错误输出日志的请求,来自
    R CMD check PKG
    的输出与来自
    R CMD INSTALL PKG
    的错误相同

    • 正在安装源程序包“PKG”。。。 **R分析(输出文件)时出错:/home/user/PKG/R/foo.R:24:0: 输入22意外结束:
      writeLines(model.text,con=outfile) 23:}^错误:无法整理 包“PKG”的文件
    • 正在删除“/home/user/PKG.Rcheck/PKG”
    分辨率

    错误的解决方法令人费解,但我用同样的错误在两个函数上复制了同样的看似神奇的方法

  • mv/PKG/R/foo.R PKG/foo.R
  • 在emacs中访问新的
    PKG/R/foo.R
  • 对于(i)函数的其他位
  • 剪贴画
  • R CMD检查包装
  • 如果
    PKG
    可以安装
  • 返回到
    1
  • 否则删除位并返回到
    3
  • diff-PKG/foo.R-PKG/R/foo.R
  • 如果没有区别,除了该功能现在起作用
  • 最新问题
  • 把前面的错误看作是侥幸
  • 继续,就好像什么都没发生一样
  • 更新2:发现罪犯!
    问题是注释符号左侧出现了一个错误的“e”###出现在函数前面

    不,R在抱怨,因为没有开口{

    foo <- function(string){   
     gsub(blah)
    }
    

    foo不,R在抱怨,因为没有空缺{

    foo <- function(string){   
     gsub(blah)
    }
    

    foo如果
    R CMD INSTALL
    仍然抛出一个错误,那么它将生成一条沿
    行的消息“检查文件/path/to/00install.log”或类似的
    ,立即打印到控制台的信息末尾。查看日志文件,因为它将准确显示错误发生的位置以及导致错误的先前R调用的记录

    如果
    R CMD check
    抛出错误,则在文件
    /path/to/check/directory/00check.log
    中会出现类似的注释,该文件同样会包含有用的信息

    查看这两个文件是否有帮助?如果没有,请发布相关日志文件的内容,我们可能会给您提供更具体的建议


    目前,您假设
    \\\\\\\\\\
    对R来说似乎根本不是问题——它解析该函数很好。

    如果
    R CMD INSTALL
    仍在抛出错误,那么它将生成一条消息,内容是“检查文件/path/to/00install.log”或类似的
    ,立即打印到控制台的信息末尾。查看日志文件,因为它将准确显示错误发生的位置以及导致错误的先前R调用的记录

    如果
    R CMD check
    抛出错误,则在文件
    /path/to/check/directory/00check.log
    中会出现类似的注释,该文件同样会包含有用的信息

    查看这两个文件是否有帮助?如果没有,请发布相关日志文件的内容,我们可能会给您提供更具体的建议


    目前,您假定
    \\\\\\\\\\\\\code>对R来说似乎一点问题都没有——它解析该函数很好。

    我无法通过以下步骤重新创建此问题:

  • foo
    复制到我的全局环境中并运行
    package.skeleton()
  • 删除了
    anRpackage/man/anRpackage package.Rd中的第34-35行
  • 将非空标题添加到
    anRpackage/man/foo.Rd
  • 运行
    R CMD build anRpackage/
  • 运行
    R CMD安装一个包\u 1.0.tar.gz
  • 运行
    R CMD检查一个包\u 1.0.tar.gz
  • 除了
    检查
    ,由于
    anRpackage-Ex.R
    中的错误示例而失败,所有操作都正常运行。以下是我使用的
    foo
    ,供参考

    foo <- function (filename, n) {
      text <- scan(file = filename, what = "character")
      if (n==1) text <- gsub("\\#GGG", '\\#', text)
      if (n>1)  text <- gsub("\\#GGG", '', text)
      writeLines(text, con = 'newfn.R')
    }
    

    foo我无法通过以下步骤重新创建此问题:

  • foo
    复制到我的全局环境中并运行
    package.skeleton()
  • 删除了
    anRpackage/man/anRpackage package.Rd中的第34-35行
  • 将非空标题添加到
    anRpackage/man/foo.Rd
  • 运行
    R CMD build anRpackage/
  • 运行
    R CMD安装一个包\u 1.0.tar.gz
  • 运行
    R CMD检查一个包\u 1.0.tar.gz
  • 除了
    检查
    ,由于
    anRpackage-Ex.R
    中的错误示例而失败,所有操作都正常运行。以下是我使用的
    foo
    ,供参考

    foo <- function (filename, n) {
      text <- scan(file = filename, what = "character")
      if (n==1) text <- gsub("\\#GGG", '\\#', text)
      if (n>1)  text <- gsub("\\#GGG", '', text)
      writeLines(text, con = 'newfn.R')
    }
    

    foo谢谢你指出这一点。我很不好意思错过了