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

出力マトリックスには、マトリックスの列 V1 に存在する行番号のみが含まれ、subset他の行は含まれないようにしたいと思います。

例:

[,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 に答える