R Can';t从<;双倍>;至<;整数>;由于精度损失

R Can';t从<;双倍>;至<;整数>;由于精度损失,r,R,尝试运行此代码,我收到以下错误消息: “必须使用有效的下标向量来子集列。由于精度损失,无法从双精度转换为整数。”是否有人可以帮助修复或转换,以便它正确识别数据帧列 data1 <- wins.df(data1, data1$q, wins.limits = c(.01, .99), append.wins.label = FALSE, verbose = TRUE) data1请显示一个可重复的小示例什么是wins.df?wins.df是一个创建用于winsorize数据的函数。我的最佳

尝试运行此代码,我收到以下错误消息:

“必须使用有效的下标向量来子集列。由于精度损失,无法从双精度转换为整数。”是否有人可以帮助修复或转换,以便它正确识别数据帧列

data1 <- wins.df(data1, data1$q, wins.limits = c(.01, .99), append.wins.label = FALSE, verbose = TRUE)

data1请显示一个可重复的小示例什么是
wins.df
?wins.df是一个创建用于winsorize数据的函数。我的最佳猜测是,由于precision@DekeMarquardt该函数包括另一个名为
wins
…的函数。您使用的是什么软件包winsorize<代码>从
t直到赢
(需要百分比或观察次数才能赢)?还是别的什么?此外,您提供的第二个参数是
data1$q
——但是在
wins.df
函数中,看起来您只需要
data1
中的列名,或者只需要“q”(感兴趣的列的名称),而不是数据帧中的数字向量。
wins.df <-
  function(X,
           var,
           wins.limits = c(.01, .99),
           append.wins.label = TRUE,
           verbose = TRUE) {
    Y <- X
    x <- X[, var]
    x.w <- wins(x, wins.limits)
    var.w <- var
    if (append.wins.label)
      var.w <- paste(var, ".w", sep = "")
    Y[, var.w] <- x.w
    if (verbose) {
      print(summary(Y[, var.w])) print(summary(X[, var]))
    }
    return(Y)
  }