R - ncol不工作

时间:2018-03-30 17:38:08

标签: r

我有矩阵mydata:

> print (mydata)
[[1]]
             [,1]       [,2]        [,3]        [,4]       [,5]       [,6]       [,7]
  [1,] -1.3135792 -1.9975308 -0.17206531  2.63028232  0.8878497  1.0354033  2.9634842
  [2,] -1.3135792 -1.4237632 -0.17206531  2.63028232  0.8878497  1.0354033  2.9634842
  [3,] -1.3135792 -1.4237632 -0.17202468  2.63028232  0.8878497  1.0354033  2.9634842
  [4,] -1.3135792  0.3795063 -0.17151001  1.12868006  0.8878497  1.0354033  2.9634842

这个矩阵充满了数字。我想知道这个矩阵有多少列。我用ncol

> print (ncol(mydata))
NULL

它给我NULL。为什么?它看起来像mydata没有任何尺寸。当我尝试迭代时

for (i in 1:7){
  z[,i] = mydata[,i] * y[i]
}

它给了我这个错误:Error in mydata[, i] : incorrect number of dimensions有什么帮助吗?

1 个答案:

答案 0 :(得分:2)

您必须使用[[从列表中提取数据。此外,最好使用mydata条件检查if and else中的列数。

N <- ncol(mydata[[1]])
for (i in seq_len(ncol(z))){
  if(i > N) break else z[,i] = mydata[[1]][,i] * y[i]
}