【发布时间】:2018-05-14 14:03:53
【问题描述】:
假设我有一个列表:
[[1]]
[1] 0.7125856 -1.4871811 0.6230076 1.0756424 0.8172592 -0.1327926 -0.7674947 -1.0738684 1.5706677
[10] -0.6674960
[[2]]
[1] -0.5778682 -1.1186447 0.8272505 0.5123162 0.6607654 1.6559877 -0.7961859 -0.8966686
[[3]]
[1] -1.42867999 -0.21142100 -2.89762370 0.11036288 0.66846399 -0.77309213 0.35278541 -0.99579117 -0.73043142
[10] -0.01857864 -0.93654969 0.46751328
[[4]]
[1] -0.483896685 -0.207550362 -0.902920637 -0.008191134 -1.015636093
而且我还有一个向量,其中包含此列表中向量的所谓“中心”值的索引:
[1] 2 4 5 1
我想要得到的是对于给定的范围(例如,3),获取围绕这些中心的向量子集,并在两边都有范围的长度。因此,每个子集的长度必须为 7,如果范围超出向量的长度,则必须添加 NA:
[[1]]
[1] NA NA 0.7125856 [-1.4871811] 0.6230076 1.0756424 0.8172592
[[2]]
[1] -0.5778682 -1.1186447 0.8272505 [0.5123162] 0.6607654 1.6559877 -0.7961859
[[3]]
[1] -0.2114210 -2.8976237 0.1103629 [0.6684640] -0.7730921 0.3527854 -0.9957912
[[4]]
[1] NA NA NA [-0.483896685] -0.207550362 -0.902920637 -0.008191134
我将中心放在括号中,因为 SO 不允许在代码中使用粗体文本。有没有办法在 R 中做这样的事情?
【问题讨论】:
标签: r