Meine Frage bezieht sich auf dieses: Function that returns a function in R aber ich versuche, ein R-Paket zu erstellen. Ich habe die folgende Funktion, die einen Datenrahmen verwendet, der in sysdata.rda namens NInput gespeichert wird. Ich möchte eine Funktion mit der Funktion carfun() zurückgeben. Ich möchte, dass der Benutzer dieses Pakets Nfun (Daten) aufrufen kann, wobei Daten die übliche Eingabe für die mit carfun() erstellte Funktion wären.Funktion, die eine Funktion in benutzerdefinierten R-Paket zurückgibt
#' A function to return interpolated N input data
#'
#' function to return interpolated N input data for decimal dates
#' @param Dates A scalar or vector of decimal input dates
#' @keywords nitrogen
#' @export
#' @examples
#' Nfun()
Nfun <- function(){
NInput$Date
NInput$Ninput
Nfun <- approxfun(NInput$Date,NInput$Ninput,rule=2)
}
Allerdings, wenn ich mein Paket mit dieser Funktion installieren und Nfun (1900) in meiner R Sitzung rufen nach Laden des Pakets, die ich erhalten:
Error in Nfun(1900) : unused argument (1900)
wenn ich
Nfun <- Nfun()
gesetzt in meiner aktiven R-Sitzung
außerhalb des Nfun.R Skript, nachdem er das Paket geladen, erscheint meine Funktion im globalen Umfeld und ich
anrufenNfun(1900)
[1] 0.7846106
Aber ich will nicht der Benutzer, dies zu tun haben. Ich denke, ich mache einen grundlegenden Fehler bei der Definition meiner Paketfunktion, aber ich bin ratlos.
Du machst ein Chaos mit diesen Namen, nenne nicht alles ** 'Nfun'! –
https://stackoverflow.com/q/20223601/1412059 – Roland