Использование неопределенного (ошибочного) аргумента в функции «вставить» — понять результат

Все мы знаем, что в функции collapse есть аргумент paste(). Он ссылается на необязательную строку символов для разделения результатов:

paste(1:5, collapse = ", ")  
[1] "1, 2, 3, 4, 5"

Но также, когда аргумент collapse написан с ошибкой - например. cpllapse - вызов не вызывает ошибки, хотя результат сбивает с толку:

paste(1:5, cpllapse = ", ")
[1] "1 , " "2 , " "3 , " "4 , " "5 , "

Я погуглил параметр cpllapse в R, но ничего не нашел.

Почему не возникает ошибка paste() при использовании аргумента с ошибкой и как можно объяснить результат? Или на самом деле в cpllapse есть параметр paste()?

Нет cpllapse аргумента. Нераспознанные аргументы — это просто вариативный ввод.

Ritchie Sacramento 17.02.2023 10:50

Формальными именованными параметрами paste() являются sep, collapse и recycle0. Другие будут переданы ... независимо от их имен. Так что paste(c(1:5), cpllapse = ", ") эквивалентно paste(c(1:5), ", ") или даже paste(c(1:5), anything_else = ", ")

Darren Tsai 17.02.2023 10:50
Конечные и Readonly классы в PHP
Конечные и Readonly классы в PHP
В прошлом, когда вы не хотели, чтобы другие классы расширяли определенный класс, вы могли пометить его как final.
От React к React Native: Руководство для начинающих по разработке мобильных приложений с использованием React
От React к React Native: Руководство для начинающих по разработке мобильных приложений с использованием React
Если вы уже умеете работать с React, создание мобильных приложений для iOS и Android - это новое приключение, в котором вы сможете применить свои...
БЭМ: Конвенция об именовании CSS
БЭМ: Конвенция об именовании CSS
Я часто вижу беспорядочный код CSS, особенно если проект большой. Кроме того, я совершал эту ошибку в профессиональных или личных проектах и...
Революционная веб-разработка ServiceNow
Революционная веб-разработка ServiceNow
В быстро развивающемся мире веб-разработки ServiceNow для достижения успеха крайне важно оставаться на вершине последних тенденций и технологий. По...
Как добавить SEO(Search Engine Optimization) в наше веб-приложение и как это работает?
Как добавить SEO(Search Engine Optimization) в наше веб-приложение и как это работает?
Заголовок веб-страницы играет наиболее важную роль в SEO, он помогает поисковой системе понять, о чем ваш сайт.
Конфигурация Jest в angular
Конфигурация Jest в angular
В этой статье я рассказываю обо всех необходимых шагах, которые нужно выполнить при настройке jest в angular.
2
2
54
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Paste имеет эллипсы ... в качестве первого параметра. Многоточие собирает все аргументы функции, которые не соответствуют ни одному из именованных параметров paste.

На странице помощи написано:

... один или несколько объектов R для преобразования в векторы символов.

Вы передаете два объекта R, и не имеет значения, что один из них является именованным аргументом, из-за того, как многоточие и сопоставление аргументов работают в R. Как обычно в R, входные векторы перерабатываются до длины самого длинного входного вектора.

То, что вы там делаете, в основном то же самое, что и paste(1:5, rep(", ", 5), sep = " ").

Также связанный раздел о ... в книге Хэдли: «Использование ... имеет свою цену — любые аргументы с ошибками не вызовут ошибку, и любые аргументы после ... должны быть полностью названы. Это позволяет легко опечатки остаться незамеченными»

Henrik 17.02.2023 11:31

Другие вопросы по теме