在matlab中,你可以做类似的事情
my_matrix[20:end]
Run Code Online (Sandbox Code Playgroud)
这将获取 中的第 20 行到最后一行my_matrix
。中是否有类似的快捷方式R data.table
?就像是:
my_matrix[20:end, ]
Run Code Online (Sandbox Code Playgroud)
可以使用 extract 运算符访问 R 中矩阵的行和列[
。另外,nrow()
是计算矩阵或数据框中的行数的函数。下面是一个创建矩阵并访问最后 5 行和前 3 列的示例。我们使用set.seed()
来确保随机数生成器始终生成与 相同的结果runif()
。
set.seed(95014123)
theData <- matrix(runif(2000),nrow=200,ncol=10)
# print last 5 rows, first 3 columns
theData[(nrow(theData)-4):nrow(theData),1:3]
Run Code Online (Sandbox Code Playgroud)
...以及输出:
> theData[(nrow(theData)-4):nrow(theData),1:3]
[,1] [,2] [,3]
[1,] 0.2028385 0.8105820 0.0171761
[2,] 0.4002767 0.9859544 0.7952463
[3,] 0.6723984 0.2401554 0.9591462
[4,] 0.3931757 0.4883088 0.2563899
[5,] 0.5325255 0.1430370 0.7674389
>
Run Code Online (Sandbox Code Playgroud)
data.table
OP 评论中提到的使用版本如下.N
所示。
library(data.table)
aDataTable <- as.data.table(theData)
# print last 5 rows, first 3 columns
aDataTable[((.N)-4):.N,1:3]
Run Code Online (Sandbox Code Playgroud)
...以及与其他方法匹配的输出:
> aDataTable[((.N)-4):.N,1:3]
V1 V2 V3
1: 0.2028385 0.8105820 0.0171761
2: 0.4002767 0.9859544 0.7952463
3: 0.6723984 0.2401554 0.9591462
4: 0.3931757 0.4883088 0.2563899
5: 0.5325255 0.1430370 0.7674389
>
Run Code Online (Sandbox Code Playgroud)
请注意,该nrow()
方法也适用于数据表:
aDataTable[(nrow(theData)-4):nrow(theData),1:3]
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
19227 次 |
最近记录: |