Wie diese zu interpretieren Fehlermeldung: (list) Objekt kann nicht sein, gezwungen zu Typ 'double'
Ich habe eine Tabelle: numTable, die wie folgt aussieht:
Nun will ich finden outiers für jede dieser Spalten. Bitte Lesen Sie meine folgenden code:
for (i in names(numTable)) {
#calculate mean and std for each column
meanValue <- mean(numTable[,i], na.rm=TRUE)
stdValue<-sd(numTable[,i],na.rm=TRUE)
#Sum up number of outliers for each column
print(paste("there are",sum(abs(numTable[,i]-meanValue)>3*stdValue,na.rm =
TRUE),"outliers in the column",i))
}
Aber ich erhalte eine Fehlermeldung:
Error in is.data.frame(x) : (list) object cannot be coerced to type 'double'
Behob ich dieses problem durch hinzufügen numTable<-as.data.frame(numTable)
am Anfang.
Könnten Sie mir bitte sagen, warum ich diese Zeile meinen code zu arbeiten? Hat es etwas zu tun mit dem Unterschied zwischen tbl und Daten.Rahmen?
Danke.
- Was ist
class(classTable)
bevor Sie konvertiert es zudata.frame
? - Ich bekomme dieses Ergebnis
[1] "tbl_df" "tbl" "data.frame"
nachdem ich laufenclass(numT)
. Ich bin nicht sicher, ob es eine tbl_df oder tbl oder Daten.frame. - Es ist alles von Ihnen. In diesem Fall, ich denke Hayden hat die Antwort.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es eine versteckte argument in eckigen Klammer Indizierung
data.frames
genanntdrop
, die standardmäßig aufTRUE
, und sagt, wenn Sie index einer Spalte, vereinfachen Sie das Ergebnis ein Vektor. Sehen?'['
.Jedoch Hadley Wickham glaubt dies ist unberechenbar Verhalten, so
tbl
s durchzusetzendrop = FALSE
.Wenn Sie wollte, um mit
tbl
s und vermeiden Sie konvertieren zu einemdata.frame
. Könnten Siedplyr::pull
zum extrahieren einer einzelnen Spalte als Vektor. ich.e: