高效创建基于R中另一个列表的列表

时间:2014-02-27 21:32:17

标签: r list

虽然我知道如何在Python和Java中做到这一点,但不熟悉如何在R中实现这一点 特别是我知道R在循环中非常慢并且动态增长列表很慢。

假设我有一个向量(列表)a< -c(1,3,4),我希望有一个列表b,它包含来自以下规则的元素,来自a的任何元素k,包括{{1}在列表中b。

3*k-2:3*k

现在更一般地说,如果我有一个规则(函数)f(k),如何将返回附加到新列表?

感谢

2 个答案:

答案 0 :(得分:2)

你想要这样的东西:

> unlist(lapply(c(1,3,4), function(k) (3*k-2):(3*k)))
[1]  1  2  3  7  8  9 10 11 12

但我没有按照您的要求提供更通用的解决方案。

答案 1 :(得分:2)

这是另一种方式,为了变化。

as.vector(mapply(`:`, 3*a-2, 3*a))
# [1]  1  2  3  7  8  9 10 11 12