R 为什么列表的dim为空?

R 为什么列表的dim为空?,r,list,lapply,R,List,Lapply,为什么列表的dim返回值通常为空? 还有,为什么向量不被视为一维矩阵,因为结果与带dim的Null相同 为什么列表中的dim为空而不是m*n numbers<-c(1,2,1,1,2,3,1,1,1) dim(numbers)<-c(3,3) dim( lapply(numbers[1,],sum)) numbers默认的dim()函数返回对象的dim属性,该属性需要是整数值的向量。列表可以有dim属性,尽管它们通常没有。比如说, x <- array(as.list

为什么列表的dim返回值通常为空? 还有,为什么向量不被视为一维矩阵,因为结果与带dim的Null相同

为什么列表中的dim为空而不是m*n

numbers<-c(1,2,1,1,2,3,1,1,1)
dim(numbers)<-c(3,3)    
dim( lapply(numbers[1,],sum))
numbers默认的
dim()
函数返回对象的
dim
属性,该属性需要是整数值的向量。列表可以有
dim
属性,尽管它们通常没有。比如说,

x <- array(as.list(1:10), c(5, 2))
dim(x)
# [1] 5 2
typeof(x)
# [1] "list"
typeof(x[1,1])
# [1] "list"
x <- structure(1, class = "foobar")
dim.foobar <- function(x) 1:3
dim(x)
# [1] 1 2 3
对于数据帧,调用
dim.data.frame
方法

你问为什么向量不被认为是一维矩阵。在R表示法中,矩阵总是有2维;具有其他维数的对象是数组。向量不被认为是一维数组的原因是没有从中获得足够的信息。矩阵是有维度的向量,所以如果向量是数组,那么就有两个维度需要跟踪

但是,当矩阵乘以向量时,将向量视为行矩阵或列矩阵是很有用的,即一维为1的二维数组。完成此操作后,R会按照线性代数中的常规规则,以适当的方式自动处理向量。

默认的
dim()
函数返回对象的
dim
属性,该属性必须是整数值的向量。列表可以有
dim
属性,尽管它们通常没有。比如说,

x <- array(as.list(1:10), c(5, 2))
dim(x)
# [1] 5 2
typeof(x)
# [1] "list"
typeof(x[1,1])
# [1] "list"
x <- structure(1, class = "foobar")
dim.foobar <- function(x) 1:3
dim(x)
# [1] 1 2 3
对于数据帧,调用
dim.data.frame
方法

你问为什么向量不被认为是一维矩阵。在R表示法中,矩阵总是有2维;具有其他维数的对象是数组。向量不被认为是一维数组的原因是没有从中获得足够的信息。矩阵是有维度的向量,所以如果向量是数组,那么就有两个维度需要跟踪


但是,当矩阵乘以向量时,将向量视为行矩阵或列矩阵是很有用的,即一维为1的二维数组。完成此操作后,R会按照线性代数的常规规则自动以适当的方式处理向量。

但是列表呢?@H1,请作为答案发布!但是列表呢?@H1,请发帖回答!