我有一个不同长度的向量列表。第一列有一个整数,表示向量中我需要对向量进行子集化的索引。
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)
我需要对两边的索引值周围的两个位置进行子集化,包括索引位置。例如,在第一个向量中,索引是 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