即使列号存在,也会获得不正确的维数

时间:2018-03-31 11:06:34

标签: r

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

所以我这样做:

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

在上面的函数中,datalabels具有相同的列数。造成这种错误的原因是什么?

1 个答案:

答案 0 :(得分:1)

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