Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
所以我知道,如果你有:
m = matrix(1:9, 3,3) z = as.matrix(expand.grid(1:3, 1:3))
你也是
m[z] # you get back 1 2 3 4 5 6 7 8 9
但如果你这样做
m[] = m[z] # You get back a matrix..
我有点困惑这个[]操作员是做什么的?为什么不喜欢m[][z]或m[z][]返回矩阵?以及如何让它返回一个矩阵而不将它分配给一个变量m[]
[]
m[][z]
m[z][]
m[]
谢谢!
这里的关键是,当“[]”(实际上是一个函数)的参数是您提供的两列矩阵时,结果将是一个向量,其中第一列指定行,第二列指定列操作矩阵。这是该语言的一个“功能”(我可能会添加一个非常方便的功能)。
参数可能包含也可能不包含行和列的所有可能组合,因此结果不会是可以预见的相同维度的矩阵。形式:m[] <- m[ z[1:4, ] ]将产生结果但也会产生警告。您应该查看结果,然后努力了解正在发生的事情。
m[] <- m[ z[1:4, ] ]