R:传播向量的有效方法

时间:2018-05-25 22:01:51

标签: r function vector tidyverse

是否有一种有效的编程方法来解决以下任务?

想象一下以下的载体:

A<-[a,b,c...k]

并希望通过以下方式传播它: 让我们从例如开始n = 2的

B<-[a,a,b,b,c...,k,k]

现在n = 4或任何数字大于1

C<-[a,a,a,a,b,...,k,k,k,k]

通过循环来解决这个问题似乎很容易,但有没有我错过/可以使用的任何函数或基于向量的操作?一个整体解决方案(在管道中使用它)对我来说是最好的解决方案。

(我很难对这项任务进行研究,因为我是R的新手并且没有正确的搜索条件。任何帮助都会有所帮助。)

2 个答案:

答案 0 :(得分:5)

A <- letters[1:11]
A
[1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k"

如果您使用带有参数rep的函数each,您可以获得所需内容:

rep(A, each=2)
 [1] "a" "a" "b" "b" "c" "c" "d" "d" "e" "e" "f" "f" "g" "g" "h" "h" "i" "i" "j"
[20] "j" "k" "k"

rep(A, each=3)
[1] "a" "a" "a" "b" "b" "b" "c" "c" "c" "d" "d" "d" "e" "e" "e" "f" "f" "f" "g"
[20] "g" "g" "h" "h" "h" "i" "i" "i" "j" "j" "j" "k" "k" "k"

答案 1 :(得分:1)

选项是使用带有参数reptimes = 2的{​​{1}},然后使用4结果。另一种选择是使用sort然后使用mapply运算符。

c