在Matlab中,您可以执行类似以下的操作:
my_matrix[20:end]
如何在my_matrix
中获取从第20行到最后一行的数据?在R data.table
中是否有类似的快捷方式?例如:
my_matrix[20:end, ]
my_matrix[20:end]
如何在my_matrix
中获取从第20行到最后一行的数据?在R data.table
中是否有类似的快捷方式?例如:
my_matrix[20:end, ]
[
在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]
……和输出:
> 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
>
根据评论中提到的方法,使用 .N
的 data.table
版本如下。
library(data.table)
aDataTable <- as.data.table(theData)
# print last 5 rows, first 3 columns
aDataTable[((.N)-4):.N,1:3]
...以及输出结果,与另一种方法相匹配:
> 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
>
nrow()
方法也适用于数据表格:aDataTable[(nrow(theData)-4):nrow(theData),1:3]
好的,我被建议将此作为答案发布。
tail(my_matrix, -19)
.N
吗? - jazzurromy_matrix[20:.N, ]
。 - user3685285