视频: Lesson 4 Fastai 2019 NLP; Tabular data; Collaborative filtering; Embeddings(中文字幕) 2024
默认情况下,当您使用括号从数组中提取值时,R始终尝试将对象简化为可能的最小维数。所以,如果你只要求一列或一行,R就会通过删除一个维度来创建一个向量。与向量一样,您可以在索引中组合多个数字。如果你想放下矩阵的第一行和第三行,你可以这样做:
<!首先 - 1 - >
。矩阵[-c(1,3),] [1] 2 5 8 11等一下…只有一个索引。 R在这里不返回矩阵 - 它返回一个向量!
通过使用索引函数中的额外参数删除,可以强制R保留所有维度。要将第二行作为矩阵返回,请执行以下操作:首先
。矩阵[2,,drop = FALSE] [,1] [,2] [,3] [,4] [1,] 2 5 8 11
这似乎非常神奇,但并不困难。括号内现在有三个位置,全部用逗号隔开。第一个位置是行索引。第二个位置是列索引。但是呢?
。矩阵[3,2]第一。矩阵[,1] [,2] [,3] [,4] [1,] 1 4 7 10 [2,] 2 5 8 11 [3,] 3 4 9 12
行或列值通过不指定其他维度。请注意,值将被循环使用,因此要将第二行更改为序列1,3,1,3,可以简单地执行以下操作:首先。矩阵[2,]第一。矩阵[,1] [,2] [,3] [,4] [1,] 1 4 7 10 [2,] 1 3 1 3 [3,] 3 4 9 12
矩阵中的值由另一个矩阵表示。你甚至不需要将值指定为矩阵 - 一个向量就可以做到。看看下面的代码的结果:
<!首先--3 - >
。首先是矩阵[1:2,3:4]。矩阵[,1] [,2] [,3] [,4] [1,] 1 4 8 2 [2,] 1 3 4 1 [3,] 3 4 9 12
前两行和最后两列到数字8,4,2和1.