rbind
универсален, но это не имеет никакого rbind.default
метода, который появляется при вводе:
methods(rbind)
Вместо этого, когда вы набираете rbind
в консоли вы увидите:
function (..., deparse.level = 1)
.Internal(rbind(deparse.level, ...))
<bytecode: 0x100e55f20>
<environment: namespace:base>
Так что неверно, что rbind
реализован только для данных в pkg: base. Вместо этого будет вызов .Internal(rbind(deparse.level, ...)
. Логика функции .Internal(rbind(..))
затем вытесняет обычную логику S3, чтобы она могла проверить, являются ли какие-либо элементы в списке аргументов data.frames. Если нет, то он продолжает обрабатывать атомные векторы и матрицы. Например, на моей машине в данный момент я вижу 4 методы, перечисленные:
methods(rbind)
[1] rbind.data.frame rbind.matrix.csr rbind.Predict*
[4] rbind.zoo*
Это также неточным сказать rbind.data.frame
относится только к dataframes. Более точным будет использование языка во втором предложении раздела «Подробности» в ?rbind
. И на самом деле прочитать остальную страницу справки, которую Джошуа напомнил нам всем, чтобы читать.
Отсутствие rbind.default
является отходом от обычного метода обработки общих функций S3. Большинство S3-дженериков, которые я изучил, имели методы *.default
. Некоторые, например, plot.default
, даже имеют свои страницы помощи.
И, наконец, я не имею ни малейшего понятия, почему розовые имена выглядят так, как они делают в исходном вопросе.
Это в '? Rownames'. См. Http://stackoverflow.com/questions/5524140/rbind-in-r-gives-a-weird-rowname –
Верьте или нет, это дубликат [this SO post] (http: // stackoverflow. ком/вопросы/5524140/rbind-в-р-дает-а-Weird-rowname).В основном, ваши списки генерируют гипотетические имена строк '2, 2 и 3'. R требует, чтобы все имена строк были уникальными, поэтому он меняет второй на «21». –
Вы вызываете 'rbind.data.frame' на * не data.frame * ... явно вызывающий метод на объект, который он не отправляет, не является хорошей практикой. Это особенно плохо, когда вы вызываете метод объекта, из которого наследуется класс метода. –