ベクトルa、bの要素を何度も繰り返そうとしています。つまり、y = 2の場合、a="abc"は"aabbcc"である必要があります。
次のコード例のいずれも機能しないのはなぜですか?
sapply(a, function (x) rep(x,b))
そしてplyrパッケージから、
aaply(a, function (x) rep(x,b))
私は私が非常に明白な何かを逃していることを知っています...
a
はベクトルではないため、文字列を1文字に分割する必要があります。
R> paste(rep(strsplit("abc","")[[1]], each=2), collapse="")
[1] "aabbcc"
あなたがベクトルであると仮定すると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"
これがでの別のオプションgsub/strrep
ですbase R
gsub("(.)", strrep("\\1", 2), a)
#[1] "aabbcc"
a <- 'abc'