gpt4 book ai didi

r - 为什么 R CMD 检查在 winbuilder 中失败并出现奇怪的错误? "type must be LANGSXP at this point"

转载 作者:行者123 更新时间:2023-12-01 22:58:19 25 4
gpt4 key购买 nike

我正在尝试在 CRAN 上提议更新我的软件包“antaresRead”。

当我使用 R-devel 服务“https://win-builder.r-project.org/upload.aspx ”来测试我的包时,出现以下错误:

test_check("antaresRead")
长度错误(ans$indices):此时类型必须为 LANGSXP
调用: test_check ... eval -> eval -> SimplyMessages -> withCallingHandlers

日志为here

为什么我在该平台和 R-devel 中遇到此错误?我可以改正吗?

当我将相同的服务与 R-release 和 R-oldRelease 一起使用时,检查正常:

使用相同的代码:

  • 特拉维斯 OK
  • appVeyor 是 OK for 8 combinations
  • rhub 也适用于 8 个平台
  • rhub::check(platform = 'debian-gcc-release')
  • rhub::check(platform = 'macos-elcapitan-release')
  • check_for_cran(platforms = "windows-x86_64-oldrel")
  • check_for_cran(platforms = "windows-x86_64-patched")
  • rhub::check(platform = 'fedora-clang-devel')
  • rhub::check(platform = 'fedora-gcc-devel')
  • rhub::check(platform = 'debian-gcc-patched')
  • rhub::check(platform = 'debian-gcc-devel')

有人遇到过这个错误吗?怎么解决?

我做了什么:

  • 下载适用于 Windows 的 R-devel 版本,找到 here --> R 3.5.0
  • 构建并检查我的 pacakge antaresRead for x64 --> 构建和检查正常
  • 构建并检查我的 i386 包 --> 构建正常,但检查失败,并出现相同的错误长度错误(ans$indices):此时类型必须为 LANGSXP
    调用:test_check ... eval -> eval -> subsupMessages -> withCallingHandlers

解决方案:- 我的错,这是我的代码,这是我的错。
错误来自此代码

        districtLinks <- merge(districtLinks, districts[, .(district, x, y)], 
by.x = "toDistrict", by.y = "district")

districtLinks 有时为空,对于新版本的 R 和 data.table,这只会在 Windows 32 位中引发错误。我之前添加了一个检查。

最佳答案

出现这个错误是因为我想将一个空的 data.table 与另一个 data.table 合并。

districtLinks <- merge(districtLinks, districts[, .(district, x, y)], 
by.x = "toDistrict", by.y = "district")

我所做的是在合并之前添加一个检查

if(!dim(districtLinks)[1]==0){
districtLinks <- merge(districtLinks, districts[, .(district, x, y)],
by.x = "toDistrict", by.y = "district")
}

关于r - 为什么 R CMD 检查在 winbuilder 中失败并出现奇怪的错误? "type must be LANGSXP at this point",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48266055/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com