0

我正在尝试对矩阵进行子集化:

windowSize <- 60
windows <- embed(1:nrow(datatsr), windowSize)

head(windows):

[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13] [,14] [,15] [,16] [,17]   [,18]
[1,]   60   59   58   57   56   55   54   53   52    51    50    49    48    47    46    45    44    43
[2,]   61   60   59   58   57   56   55   54   53    52    51    50    49    48    47    46    45    44
[3,]   62   61   60   59   58   57   56   55   54    53    52    51    50    49    48    47    46    45
[4,]   63   62   61   60   59   58   57   56   55    54    53    52    51    50    49    48    47    46
[5,]   64   63   62   61   60   59   58   57   56    55    54    53    52    51    50    49    48    47
[6,]   65   64   63   62   61   60   59   58   57    56    55    54    53    52    51    50    49    48

dim(windows)
[1] 3291   60

按值(其中V1列实际上是我想包含在windows上面的矩阵中的行号):

头部(子集):

   V1
1  67
2  89
3 111
4 133
5 155
6 176 

dim(subset)
[1] 152   1

range(subset)
[1]   67 3351

我希望输出矩阵仅包含subset矩阵 V1 列中存在的行号,而不包含其他行。

例如:

[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13] [,14] [,15] [,16] [,17]   [,18]
[1,]  126   125   124   123  122  121   120   119   118    117    116    115    114    113    112    111    110    109

其中第一个值subset[,1]是从 126 到 109 的序列 - 存在于windows矩阵第 67 行的序列。等等...

我试过:

window=windows[subset[,1],]

Error: subscript out of bounds

或者:

window=subset(windows,windows%in%subset[,1])

Error in subset.matrix(windows, windows %in% subset[, 1]) : 
(subscript) logical subscript too long

我究竟做错了什么?

4

1 回答 1

2

删除 的值subset高于 的行数windows

windows[subset$V1[subset$V1 <= nrow(windows)], ]
于 2012-09-17T18:15:43.737 回答