Как создать эту последовательность «x-^-1» «x-^-1» «x-^-1» «x-^-1» «x-^-2» «x-^-2» «x-^-2» «x-^-3» «x-^-3» «x-^-4» в R?

#r #dataframe

Вопрос:

Мне было дано:

Используйте :,seq(),rep()и,возможно, другие часто используемые операторы/функции, но НЕ c() или любые явные циклы для создания следующих последовательностей (составные выражения разрешены).

Я хочу создать эту последовательность:

 "x-^-1" "x-^-1" "x-^-1" "x-^-1" "x-^-2" "x-^-2" "x-^-2" "x-^-3" "x-^-3" "x-^-4"
 

Я знаю, что, вероятно, мне следует использовать функцию paste (), но как мне организовать это, чтобы у меня было четыре 1, три 2, два 3 и один 4. Как мне это сделать? ТИА

Ответ №1:

Вы можете использовать paste и rep в качестве —

 paste0('x-^-', rep(1:4, 4:1))

# [1] "x-^-1" "x-^-1" "x-^-1" "x-^-1" "x-^-2" "x-^-2" "x-^-2"
# [8] "x-^-3" "x-^-3" "x-^-4"
 

Комментарии:

1. Спасибо, что это сработало. Не могли бы вы уточнить, что здесь делают 1:4 и 4:1? Я все еще немного не понимаю, как это работало. Спасибо!

2. второй аргумент для повторения-сколько раз повторять каждый из входных элементов, см. ?rep

3. Да, именно так, как упоминал @qwr. Запустите 1:4 и 4:1 в консоли, 1 повторяется 4 раза, 2 повторяется 3 раза и так далее.