Anhand der Daten.Tisch-Paket in mein Angebot

Ich versuche die Daten nutzen zu können.Tisch-Paket in mein Angebot. MWE ist wie folgt:

Ich eine Funktion erstellen, zu testen.viel Spaß, das schafft einfach eine kleine Daten.Tabelle-Objekt, und klicken Sie dann Summen die "Val" - Spalte gruppieren, indem Sie die "A" - Spalte. Der code ist

test.fun<-function ()
{
    library(data.table)
    testdata<-data.table(A=rep(seq(1,5), 5), Val=rnorm(25))
    setkey(testdata, A)
    res<-testdata[,{list(Ct=length(Val),Total=sum(Val),Avg=mean(Val))},"A"]
    return(res)
}

Wenn ich diese Funktion regelmäßig in einer R-Sitzung, und führen Sie dann die Funktion, funktioniert es wie erwartet.

> res<-test.fun()
data.table 1.8.0  For help type: help("data.table")
> res
     A Ct      Total        Avg
[1,] 1  5 -0.5326444 -0.1065289
[2,] 2  5 -4.0832062 -0.8166412
[3,] 3  5  0.9458251  0.1891650
[4,] 4  5  2.0474791  0.4094958
[5,] 5  5  2.3609443  0.4721889

Wenn ich diese Funktion in ein Paket, das Paket installieren, laden Sie das Paket, und dann die Funktion auszuführen, bekomme ich eine Fehlermeldung.

> library(testpackage)
> res<-test.fun()
data.table 1.8.0  For help type: help("data.table")
Error in `[.data.frame`(x, i, j) : object 'Val' not found

Kann jemand mir erklären, warum dies geschieht und was kann ich tun, um es zu beheben. Jede Hilfe wird sehr geschätzt.

  • Meine Vermutung ist, dass Sie noch nicht deklariert eine Abhängigkeit. Sie sollten zu entfernen library(data.table) Ihre Funktion, und erklären depends:data.table im namespace und BESCHREIBUNG.
InformationsquelleAutor ruser | 2012-05-10
Schreibe einen Kommentar