下面是一个示例:
t <- list(a=1,b=2,c=3)
typeof(as.matrix(t))
如果你在R中运行这个(我使用的是ubunutu R版本4.3.1),typeof仍然是list。如果你创建一个像matrix(c(1,2,3),ncol=3)这样的矩阵,typeof将返回matrix。对于另一个函数,我要求类型是一个矩阵,否则它会抛出错误。
我不确定这是一个bug还是一个预期的功能,但我希望有人能解释一下发生了什么。我知道我可以通过调用unlist()和matrix()来解决这个问题,但我很想知道为什么会发生这种情况,是否有更简单的方法来解决这个问题
1条答案
按热度按时间7y4bm7vi1#
正如在comens中所讨论的,在这两种情况下,as.matrix都使用as.matrix.default方法。
我们可以进一步追踪差异,但也许足以认识到base::array函数将命名列表输入与命名向量输入区别对待。