-1

さまざまな長さのベクトルのリストがあります。最初の列には、ベクトルをサブセット化する必要があるベクトル内のインデックスを表す整数があります。

v1 <- c(6,1,2,3,4,5,6,7,8,9,10)
v2 <- c(5,1,2,3,4,5)
v3 <- c(3,1,2,3,4,5,6,7,8,9,10,11,12,13)

インデックス位置を含め、両側のインデックス値を囲む 2 つの位置をサブセット化する必要があります。たとえば、最初のベクトルではインデックスが 6 であるため、4 番目から 8 番目の位置が必要です。

この問題は、インデックスがベクトルの末尾に近すぎて、「未定義の列が選択されました」というエラーが発生した場合に発生します。リスト内のすべてのベクトルをサブセット化し、未定義の列を NA に置き換えて単一のデータ フレームに配置し、次のようにします。

  X1 X2 X3 X4 X5
   3  4  5  6  7
   2  3  4  5 NA
  NA  1  2  3  4

全体的な目標は、列に対してさまざまな要約統計を実行することであり、欠損値は問題ありません。

編集:

各ベクトルの最初の要素は、操作しようとしているデータの一部ではありません。これは、ベクトルの残りの部分でデータをサブセット化する場所を教えてくれるインデックスにすぎません。

最初の要素が 1 になることはありません。最小値は 2 で、最大値はベクトルの長さに依存します。以下は、同じデータを使用した別の例ですが、最初の要素を変更してサブセット化にどのように影響するかを示しています。

x1 <- c(2,1,2,3,4,5)

X1 X2 X3 X4 X5
NA NA  1  2  3

x2 <- c(3,1,2,3,4,5)

X1 X2 X3 X4 X5
NA  1  2  3  4

x3 <- c(4,1,2,3,4,5)

X1 X2 X3 X4 X5
 1  2  3  4  5

x4 <- c(5,1,2,3,4,5)

X1 X2 X3 X4 X5
 2  3  4  5 NA

x5 <- c(6,1,2,3,4,5)

X1 X2 X3 X4 X5
 3  4  5 NA NA
4

2 に答える 2