2017-09-26 3 views
0

Ich habe mich gefragt, warum die lapply Funktion wieder einen Fehler gibt, wenn dieser Begriff verwendet:lapply Fehlermeldung beim Erstellen einer Sequenz

>lapply(x=3:9, seq) 
Error in match.fun(FUN) : argument "FUN" is missing, with no default 

aber perfekt funktioniert, wenn es wie folgt ausgeführt werden:

>lapply(X=3:9, seq) 

[[1]]  
[1] 1 2 3 

[[2]]  
[1] 1 2 3 4 

[[3]]  
[1] 1 2 3 4 5 

[[4]]  
[1] 1 2 3 4 5 6 

[[5]] 
[1] 1 2 3 4 5 6 7 

[[6]]  
[1] 1 2 3 4 5 6 7 8 

[[7]] 
[1] 1 2 3 4 5 6 7 8 9 

Beide Objekte (x und X) sind nicht verfügbar.

Gibt es hier interne Funktionen?

Assa

> sessionInfo() 
R version 3.4.0 (2017-04-21) 
Platform: x86_64-apple-darwin15.6.0 (64-bit) 
Running under: OS X El Capitan 10.11.6 

Matrix products: default 
BLAS: /Library/Frameworks/R.framework/Versions/3.4/Resources/lib/libRblas.0.dylib 
LAPACK: /Library/Frameworks/R.framework/Versions/3.4/Resources/lib/libRlapack.dylib 

locale: 
[1] C/UTF-8/C/C/C/C 

attached base packages: 
[1] stats  graphics grDevices utils  datasets methods base  

loaded via a namespace (and not attached): 
[1] compiler_3.4.0 

Antwort

3

Die Signatur von lapply ist

function (X, FUN, ...) 

so hat es zwei benannte Parameter: X und FUN. Wenn Sie X=3:9 verwenden, wird der erste Parameter auf 3:9 festgelegt. Wenn Sie x=3:9 ausführen, wird dieser Parameter im ...-Teil übergeben (da R Groß-und Kleinschreibung ist) und seq ist jetzt der erste Parameter. Es ist üblich, den Namen für den ersten Parameter beim Aufruf von lapply nicht zu verwenden. verwenden nur

lapply(3:9, seq) 
+0

danke. Ich hätte daran denken sollen. –

0

Die lapply Funktion erfordert zwei Argumente X und FUN. Da R die Groß-/Kleinschreibung unterscheidet, funktioniert es nicht mit x statt X. Die Fehlermeldung ist etwa FUN aber das eigentliche Problem ist Ihre x.

Ich empfehle, die Hilfeseite zu betrachten, wenn Sie eine neue Funktion verwenden, indem Sie ?lapply ausführen.

Verwandte Themen