• R语言
  • 求教:简单的循环错在哪?

list1=list(x = c(1,3), y = c(2,3))
list2=list(x = matrix(1:12, 3), y = matrix(1:12, nrow = 4))
请教:如何将list1中x和y的数值视作坐标值,将list2中对应元素的矩阵按照坐标值将数取出。

qq=list()
qq=for (i in 1:length(list2) ) {list2[][list1[][1], list1[][2]]}

qq
NULL
不知道for循环错在哪?另外可以用lapply代替吗?

    dhfly
    这样可以吗?

    lapply(1:length(list2), 
           FUN=function(x, datalist, indexlist) list2[[x]][list1[[x]][1], list1[[x]][2]], 
           datalist = list2, indexlist = list1)

    顺便蹲个简洁点的写法