将一个列表中的对象替换为另一个列表中的相应对象

时间:2016-06-13 18:28:01

标签: r list replace

a是一个列表。 a<-list(1,3,4,2,5,6)

b也是一个列表。 b<-list(c(1,2),4,5,6,7,8)

p是一个指标。 p<-c(T,F,T,T,T,T)

如果p为真,那么我们会在相应位置将a替换为b。否则,请保持原样a

所以预期的结果如下:

[[1]]
[1] 1 2

[[2]]
[1] 3

[[3]]
[1] 5

[[4]]
[1] 6

[[5]]
[1] 7

[[6]]
[1] 8

我使用以下代码计算:

replace(a,b,p)

但事实证明:

Error in replace(a, b, p) : invalid subscript type 'list'

你能帮忙解决这个问题,谢谢!

1 个答案:

答案 0 :(得分:1)

我认为这应该有效:

a[p]<-b[p]

或:

ifelse(p, b, a)