用R中的另一个值替换列表的值

用R中的另一个值替换列表的值,r,list,R,List,a、 b和c是列表 a<-list(c(6,5,7),c(1,2),c(1,3,4)) b<-list(c(1,2,3),c(4,5),c(6,7,8)) c<-list(1,2,2) 谢谢你的帮助 听起来像是在寻找同时迭代所有列表的Map Map(function(a,b,c) {a[c]<-b[c]; a},a,b,c) # [[1]] # [1] 1 5 7 # # [[2]] # [1] 1 5 # # [[3]] # [1] 1 7 4 Map(函数(a,b

a、 b和c是列表

a<-list(c(6,5,7),c(1,2),c(1,3,4))
b<-list(c(1,2,3),c(4,5),c(6,7,8))
c<-list(1,2,2)

谢谢你的帮助

听起来像是在寻找同时迭代所有列表的
Map

Map(function(a,b,c) {a[c]<-b[c]; a},a,b,c)
# [[1]]
# [1] 1 5 7
#
# [[2]]
# [1] 1 5
#
# [[3]]
# [1] 1 7 4

Map(函数(a,b,c){a[c]对于那些发现
Map
语法的新手:

for(i in seq(c)){
  a[[i]][unlist(c[i])] <- b[[i]][unlist(c[i])]
}
a

# [[1]]
# [1] 1 5 7
#
# [[2]]
# [1] 1 5
#
# [[3]]
# [1] 1 7 4
for(i在下文(c)中){

a[[i]][unlist(c[i])]你能详细说明一下你的替换逻辑吗?
Map(`[list“c”是位置的指示器,它包含3个对象:1、2和2。它们代表替换元素在“a”和“b”的每个对象中的位置。也就是说,“a”中第一个对象的第一个元素(6)将替换为“b”(1)中第一个对象的第一个元素,“a”(2)中第二个对象的第二个元素将替换为“b”(5)中第二个对象的第二个元素,“a”(3)中第三个对象的第二个元素将替换为“b”(7)中第三个对象的第二个元素
for(i in seq(c)){
  a[[i]][unlist(c[i])] <- b[[i]][unlist(c[i])]
}
a

# [[1]]
# [1] 1 5 7
#
# [[2]]
# [1] 1 5
#
# [[3]]
# [1] 1 7 4