R 为什么列表的dim为空?
为什么列表的dim返回值通常为空? 还有,为什么向量不被视为一维矩阵,因为结果与带dim的Null相同 为什么列表中的dim为空而不是m*nR 为什么列表的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
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,请发帖回答!