我有矩阵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
有什么帮助吗?
答案 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]
}