1. Задача
Я хочу написать пакет together
, включая обобщенную функцию c: +.character
, для добавления двух символов вместе. Мои коды приведены ниже.
#' @title Paste
#' @param e1 character1
#' @param e2 character2
#' @name paste
#' @export
#' @method + character
"+.character" <- function(e1,e2) paste(e1,e2)
Когда я заканчиваю sh этот пакет, я пытаюсь
library(together)
'a' + 'b'
Это приходит к ошибке
Ошибка в "a" + «b»: без нумерации c аргумент бинарного оператора
2. мой endover
Я использую useMethod
, чтобы определить +
следующим образом
#' @export
#' @rdname paste
"+" <- function(e1,e2) UseMethod("+")
Теперь +
работает
> 'a' + 'b'
[1] "a b"
3. Проблема снова
Когда я заканчиваю sh эту работу, я использую Ctrl + Shift + E
, чтобы проверить этот пакет как проверку крана в RStudio. Всегда повторяется Предупреждение следующим образом:
> checking S3 generic/method consistency ... WARNING
Warning: �Ҳ��������˵�S3����'+.character'
See section 'Generic functions and methods' in the 'Writing R
Extensions' manual.
4. мое предположение
Мы не можем использовать +
в качестве обобщенной функции c для character
, numeric
, которые являются базовыми классами.
Это навязчиво в R?
Большое спасибо за эту проблему.