Повторите элементы вектора в R

Я пытаюсь повторить элементы вектора a, b количество раз. Таким образом, = "abc" должна быть "aabbcc" если y = 2.

Почему не делает ни одной из следующей работы примеров кода?

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

и от plyr пакета,

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

Я знаю, что пропускаю что-то очень очевидное...

9
задан bshor 12 May 2010 в 19:07
поделиться

2 ответа

Предполагая, что 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"
10
ответ дан 4 December 2019 в 08:15
поделиться

a не является вектором, вам необходимо разбить строку на отдельные символы, например

R> paste(rep(strsplit("abc","")[[1]], each=2), collapse="")
[1] "aabbcc"
16
ответ дан 4 December 2019 в 08:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: