R错误中未使用的参数

w80xi6nr  于 2023-03-27  发布在  其他
关注(0)|答案(3)|浏览(172)

我是新的R,我试图运行的例子是在“rebmix-helppdf”。它使用银河数据集,这里是代码

library(rebmix)
devAskNewPage(ask = TRUE)
data("galaxy")
write.table(galaxy, file = "galaxy.txt", sep = "\t",eol = "\n", row.names = FALSE,    col.names = FALSE)
REBMIX <- array(list(NULL), c(3, 3, 3))
Table <- NULL
Preprocessing <- c("histogram", "Parzen window", "k-nearest neighbour")
InformationCriterion <- c("AIC", "BIC", "CLC")
pdf <- c("normal", "lognormal", "Weibull")
K <- list(7:20, 7:20, 2:10)
for (i in 1:3) {
for (j in 1:3) {
for (k in 1:3) {
REBMIX[[i, j, k]] <- REBMIX(Dataset = "galaxy.txt",
Preprocessing = Preprocessing[k], D = 0.0025,
cmax = 12, InformationCriterion = InformationCriterion[j],
pdf = pdf[i], K = K[[k]])
if (is.null(Table))
Table <- REBMIX[[i, j, k]]$summary
else Table <- merge(Table, REBMIX[[i, j,k]]$summary, all = TRUE, sort = FALSE)
    }
 }
}

它给了我错误错误:未使用的参数(InformationCriterion = InformationCriterion[j])Plz help

qvsjd97n

qvsjd97n1#

我运行的是R 3.0.2(Windows),rebmix库定义了一个函数REBMIX,其中InformationCriterion没有作为命名参数列出,而是Criterion
简要调用REBMIX为:

REBMIX[[i, j, k]] <- REBMIX(Dataset = "galaxy.txt",
    Preprocessing = Preprocessing[k], D = 0.0025,
    cmax = 12, Criterion = InformationCriterion[j],
    pdf = pdf[i], K = K[[k]])
bzzcjhmw

bzzcjhmw2#

看起来自从OP中提到的例子创建以来,rebmix包有了实质性的变化,其中最值得注意的变化是S4类的使用。
rebmix包中还有一个使用galaxy数据的更新演示(参见demo("rebmix.galaxy")
要得到上面的例子产生的结果(* 注:我不熟悉这个包或rebmix算法!!!*):
1.如@Giupo所述,将参数更改为Criterion
1.使用S4插槽访问操作符@而不是$
1.不要将结果对象命名为REDMIX,因为这已经是函数名了

library(rebmix)
data("galaxy")

## Don't re-name the REBMIX object!
myREBMIX <- array(list(NULL), c(3, 3, 3))
Table <- NULL
Preprocessing <- c("histogram", "Parzen window", "k-nearest neighbour")
InformationCriterion <- c("AIC", "BIC", "CLC")
pdf <- c("normal", "lognormal", "Weibull")
K <- list(7:20, 7:20, 2:10)

for (i in 1:3) {
  for (j in 1:3) {
    for (k in 1:3) {

      myREBMIX[[i, j, k]] <- REBMIX(Dataset = list(galaxy),
        Preprocessing = Preprocessing[k], D = 0.0025,
        cmax = 12, Criterion = InformationCriterion[j],
        pdf = pdf[i], K = K[[k]])
      if (is.null(Table)) {
        Table <- myREBMIX[[i, j, k]]@summary
      } else {
        Table <- merge(Table, myREBMIX[[i, j,k]]@summary, all = TRUE, sort = FALSE)
      }
    }
  }
}
ybzsozfc

ybzsozfc3#

我想这有点晚了。但是我在几分钟前遇到了一个类似的问题。我意识到当你收到这种错误消息时,你可能会面临的真实情况......这只是版本冲突
您可能使用教程中不同版本的R包,因此您正在运行的参数名称可能与真实的代码使用的参数名称不同。
因此,请在尝试手动编辑文件之前检查版本。此外,碰巧您的旧版本软件包仍然在路径中,并且它覆盖了新版本。这正是我所拥有的......因为我手动安装了旧版本和新版本......

相关问题