【问题标题】:Getting incorrect number of dimensions even when the column number exists即使列号存在,也会得到不正确的维度数
【发布时间】:2018-03-31 11:06:34
【问题描述】:

我遇到了一个特殊的问题。我有一个数据框,我需要将所有 3 和 5 分别替换为 0 和 1。

所以我这样做:

labels = ifelse(labels[1,] == 3, 1, 0)

运算前后的行数为1,运算前后的列数为11552。

现在我将它传递给下面给出的函数:

train <- function(data, labels) {
  #browser()

  shuffle <- sample(ncol(labels))
  labels <- labels[,shuffle]
  data <- data[,shuffle]
  for(i in seq(1:ncol(data))) {
    ## .. something here ..  
    y = labels[1,i] #LINE THAT THROWS ERROR -LINE 1
    ## ..something .. 
  }
  return(theta)
}

标记的线 LINE 1 抛出一个错误说:

Error in labels[1, i] : incorrect number of dimensions

在上面的函数中data 和labels 具有相同的列数。出现此错误的原因可能是什么?

【问题讨论】:

  • 你的第一条语句把labels变成了一个向量,所以你不能二维访问它。
  • @AndrewGustar 是的。您可以将此作为答案。
  • 试试labels &lt;- labels[,shuffle, drop = FALSE] ...以后要小心这个常见的陷阱!

标签: r


【解决方案1】:

您的第一条语句将labels 转换为向量,因此您无法在二维中访问它。只需使用labels[i]。

【讨论】:

    猜你喜欢
    • 2015-03-04
    • 2016-01-24
    • 1970-01-01
    • 2013-02-10
    • 2015-03-04
    • 1970-01-01
    • 2019-09-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多