I'm trying to repeat the elements of vector a, b number of times. That is, a="abc" should be "aabbcc" if y = 2.
Why doesn't either of the following code ex开发者_如何学Goamples work?
sapply(a, function (x) rep(x,b))
and from the plyr package,
aaply(a, function (x) rep(x,b))
I know I'm missing something very obvious ...
a
is not a vector, you have to split the string into single characters, e.g.
R> paste(rep(strsplit("abc","")[[1]], each=2), collapse="")
[1] "aabbcc"
Assuming you a
is a vector, sapply will create a matrix that just needs to be collapsed back into a vector:
a<-c("a","b","c")
b<-3 # Or some other number
a<-sapply(a, function (x) rep(x,b))
a<-as.vector(a)
Should create the following output:
"a" "a" "a" "b" "b" "b" "c" "c" "c"
Here is another option with gsub/strrep
in base R
gsub("(.)", strrep("\\1", 2), a)
#[1] "aabbcc"
data
a <- 'abc'
精彩评论