#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 раза и так далее.