我有一个包含多个元素的列表,比如说10.
testList <- split(1:10,1:10)
如何在列表中间插入一个新元素,比如位置3?
循环遍历所有元素的蛮力方式将起作用,但只是想知道是否有更优雅的方式来做到这一点?
答案 0 :(得分:25)
我认为append
- 函数正是您所寻找的:
append(testList, list(x=42), 3)
$`1`
[1] 1
$`2`
[1] 2
$`3`
[1] 3
$x
[1] 42
$`4`
[1] 4
#snipped....
对于更复杂的列表,您可能会发现hte utils包中的modifyList
函数是有用的。它允许有针对性的修改。
答案 1 :(得分:3)
使用提取索引:
> testList[5:11] <- c('something', testList[5:10])
> str(testList)
List of 11
$ 1 : int 1
$ 2 : int 2
$ 3 : int 3
$ 4 : int 4
$ 5 : chr "something"
$ 6 : int 5
$ 7 : int 6
$ 8 : int 7
$ 9 : int 8
$ 10: int 9
$ : int 10