R Code Beim Schreiben Spalten mit numerischen Daten zu identifizieren, hatte ich ein paar Probleme und fand diese Frage auf SO: Is there a vectorized way to use is.numeric?is.numeric gilt innerhalb vs sapply
Innerhalb dieser Seite ich meine Antwort gefunden, aber ich bin verwirrt durch die Natur des Problems selbst. Auf dieser Seite gibt das folgende Code schnipp, was ich erwarten:
> dat <- data.frame(v1=1:5,v2=letters[1:5],v3=rnorm(5),v4=c(1,2,'c','d',5))
> sapply(dat,is.numeric)
v1 v2 v3 v4
TRUE FALSE TRUE FALSE
Aber wenn ich sapply anwenden ändern, bekomme ich, was mein Problem verursacht hat.
> dat <- data.frame(v1=1:5,v2=letters[1:5],v3=rnorm(5),v4=c(1,2,'c','d',5))
> apply(dat,2,is.numeric)
v1 v2 v3 v4
FALSE FALSE FALSE FALSE
Warum führen Apply und Sapply zu unterschiedlichen Auswertungen?
'help (apply)' - * Wenn 'X' kein Array ist, sondern ein Objekt einer Klasse mit einem Nicht-Null-Wert (z. B. ein Datenrahmen), wenden Sie Versuche an, es über' zu einem Array zu zwingen as.matrix 'wenn es zweidimensional ist (zB ein Datenrahmen) oder über' as.array'. * –
'apply' und' lapply' sind verschiedene Funktionen, es ist also kein Wunder, dass sie unterschiedliche Ergebnisse liefern. Seien Sie sich dessen bewusst, was sie tun und wann sie verwendet werden sollten. – nicola
@RichardScriven - danke für dieses Detail. Ich habe das in der Bewerbung nicht gesehen - klar, ich habe es übersehen oder es im richtigen Kontext nicht gewürdigt. Ich würde aufheben oder akzeptieren, dass du antwortest, wenn ich könnte. – KirkDCO