9

ベクトルa、bの要素を何度も繰り返そうとしています。つまり、y = 2の場合、a="abc"は"aabbcc"である必要があります。

次のコード例のいずれも機能しないのはなぜですか?

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

そしてplyrパッケージから、

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

私は私が非常に明白な何かを逃していることを知っています...

4

3 に答える 3

17

aはベクトルではないため、文字列を1文字に分割する必要があります。

R> paste(rep(strsplit("abc","")[[1]], each=2), collapse="")
[1] "aabbcc"
于 2010-05-12T19:17:05.093 に答える
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"
于 2010-05-12T22:19:50.647 に答える
0

これがでの別のオプションgsub/strrepですbase R

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

データ

a <- 'abc'
于 2020-06-09T04:38:07.047 に答える