R中向量的重复元素

问题描述 投票:9回答:3

我正在尝试重复向量a,b的元素多次。也就是说,如果y = 2,则a =“ abc”应该为“ aabbcc”。

为什么以下两个代码示例都不起作用?

sapply(a, function (x) rep(x,b))

和来自plyr包装,

aaply(a, function (x) rep(x,b))

我知道我缺少一些非常明显的东西...

r plyr
3个回答
10
投票

假设您a是一个向量,sapply将创建一个只需折叠回向量的矩阵:

a<-c("a","b","c")
b<-3 # Or some other number
a<-sapply(a, function (x) rep(x,b))
a<-as.vector(a)

应创建以下输出:

"a" "a" "a" "b" "b" "b" "c" "c" "c"

16
投票

[a不是向量,您必须将字符串分割成单个字符,例如]

R> paste(rep(strsplit("abc","")[[1]], each=2), collapse="")
[1] "aabbcc"

0
投票

[这是gsub/strrep中的base R的另一个选项

gsub("(.)", strrep("\\1", 2), a)
#[1] "aabbcc"

数据

a <- 'abc'
© www.soinside.com 2019 - 2024. All rights reserved.