Code geschrieben mit lapply und Freunden ist in der Regel einfacher auf die Augen und mehr Rish als Schleifen. Ich liebe genauso viel wie der nächste Typ, aber wie kann ich es debuggen, wenn etwas schief läuft? Zum Beispiel:Debugging lapply/sapply Anrufe
> ## a list composed of numeric elements
> x <- as.list(-2:2)
> ## turn one of the elements into characters
> x[[2]] <- "what?!?"
>
> ## using sapply
> sapply(x, function(x) 1/x)
Error in 1/x : non-numeric argument to binary operator
habe ich eine for-Schleife:
> y <- rep(NA, length(x))
> for (i in 1:length(x)) {
+ y[i] <- 1/x[[i]]
+ }
Error in 1/x[[i]] : non-numeric argument to binary operator
Aber ich würde wissen, wo der Fehler aufgetreten ist:
> i
[1] 2
Was soll ich tun, wenn lapply mit/sapply?
Oder nur 'blah <-sapply (x, mfn)'. Und Sie sollten nicht beide "Debug" und "Wiederherstellen" – hadley