【发布时间】:2018-09-25 00:24:11
【问题描述】:
我有以下列表,比如说:
> a
[[1]]
[1] "C" "A" "C" "C" "U" "U" "G" "U" "C" "C" "U" "C" "A" "C" "G" "G" "U" "C"
[[2]]
[1] "G" "U" "A" "G" "C" "A" "C" "U" "A" "A" "A" "G" "U" "G" "C" "U" "U" "A"
我还有其他数字列表,它们对应于我想从 a 中提取的位置索引,比如 b:
> b
[[1]]
[1] 3 4 6 7 9 10 11 12
[[2]]
[1] 1 2 3 4 6 7 8 10
我想提取每个字母,其索引位置对应于列表 b 中的向量,例如,输出将类似于:
> c
[[1]]
[1] "C" "C" "U" "G" "C" "C" "U" "C"
[[2]]
[1] "G" "U" "A" "G" "A" "C" "U" "A"
我知道如何从列表中的每个向量中提取一个元素,例如,我想从列表 a 中提取每个第一个元素(索引 1),所以我将应用下一个代码:
lapply(a, '[[', 1)
但是我怎样才能提取多个值呢?如果在最后一个代码中 a 放 b 而不是“1”,我会得到一个错误...
Error in FUN(X[[i]], ...) :
attempt to select more than one element in vectorIndex
我应该使用 for 循环吗?
【问题讨论】: