是否有一种有效的编程方法来解决以下任务?
想象一下以下的载体:
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的新手并且没有正确的搜索条件。任何帮助都会有所帮助。)
答案 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)
选项是使用带有参数rep
或times = 2
的{{1}},然后使用4
结果。另一种选择是使用sort
然后使用mapply
运算符。
c