【问题标题】:data length differs from size of matrix warning on CRAN check数据长度与 CRAN 检查中矩阵警告的大小不同
【发布时间】:2023-03-17 09:14:01
【问题描述】:

知道为什么下面的代码 sn-p(来自 spatialEco::insert 函数)会在 CRAN 检查中返回 数据长度与矩阵大小不同 警告吗?我无法重新创建此警告,但是,我收到了来自 CRAN 的一封电子邮件,其中一大组包在检查示例时收到此警告。我的一个被标记了,我不确定错误的来源。这个包(和这个特定的功能)已经存在了一段时间,为什么我现在收到一个检查警告?其他 65 位软件包维护者可能也在问自己同样的问题。

诚然,我可能在这里很密集并且遗漏了一些东西,但是,我已经运行了这个包:rcmdchec::rcmdcheck(带有各种标志组合)、rcmdchec::compare_to_cran(带有所有可用的口味)以及提交给https://win-builder.r-project.org/https://builder.r-hub.io 并且无法重新创建警告。

x <- data.frame(ID=1:10, y=runif(10))
idx =2
 value = rep(NA, nrow(x))
   x[seq(idx+1, nrow(x)+1),] <- x[seq(idx, nrow(x)),]
     x[idx,] <- value

这是 CRAN 指示正在返回的结果警告。它似乎与新值的管道有关,但不确定为什么会突然返回警告以及为什么它是矩阵大小问题。

annet% grep -r "数据长度与矩阵大小不同" spatialEco.Rcheck/spatialEco.Rcheck/spatialEco-Ex.Rout:数据长度 不同于矩阵的大小:[10 != 1 x 2]

matrix(value, n, p) 中的警告:数据长度与 矩阵:[10 != 1 x 2]

traceback() 9: 矩阵(值, n, p) 8: [&lt;-.data.frame(*tmp*, idx, , value = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA)) 7: [&lt;-(*tmp*, idx, , 值 = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA)) 6:在 Rex1c630657f5bf04#10 处插入(d,idx = 2)

【问题讨论】:

    标签: r matrix package cran


    【解决方案1】:

    显而易见的占上风。 “值”指定不正确。在此示例中,“值”产生的长度为 10 而不是 2。它应该是 value = rep(NA, ncol(x))。这个 sn-p 来自函数 spatialEco::insert 与 MARGIN 参数 1。使用 MARGIN=2 结果是正确的,因为 nrow 是在此条件下调用的,这只是 R 忽略的愚蠢的语法错误,只是取了数字需要的元素,而忽略其余元素。 Here is the source for the function in question.

    令我惊讶的是,CRAN 检查这么长时间都忽略了这种行为/错误。所以,我想这是一件好事,但有趣的是,我们收到了关于 R 开发版本的通知,警告说如果不解决,我们的包将在几周内从 CRAN 中删除。

    【讨论】:

    • 什么版本的 R 会导致这个错误?像这样的代码 matrix(nrow = 1, ncol = 1, data = 1:200) 从 R 4.1.0 (2021-05-18) 开始仍然没有错误
    猜你喜欢
    • 2013-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多