ausgewählte Daten-frame, der durch Zeilen-index
Warum ist mein letzter Schritt, die Umwandlung der Daten-frame zu einem Vektor? Ich will, dass die ersten 6000 Beobachtungen in den Daten-frame key
.
set.seed(1)
key <- data.frame(matrix(NA, nrow = 10000, ncol = 1))
names(key) <- "ID"
key$ID <- replicate(10000,
rawToChar(as.raw(sample(c(48:57,65:90,97:122), 8, replace=T))))
key <- unique(key) # still a data frame
key <- key[1:6000,] # no longer a data frame
is.data.frame(key[1:6000,,drop=F]) [1] TRUE
- Sie können einfach verwenden Sie key <- Daten.Rahmen(Schlüssel[1:6000,]), wenn das ist alles, was Sie brauchen
- das funktioniert, aber ich bin mir nicht klar, warum ich es brauche. Sollte nicht
key[1:6000,]
ausreichen, um die Teilmenge der Daten-frame? - das funktioniert. ist das die gleiche wie
?drop
? Ich habe in der Hilfe für dieses, aber ich bin mir nicht sicher, wasdrop=F
hat, außer dem geben das richtige Ergebnis. - Grün. Bitte überprüfen Sie
?Extract
drop: For matrices and arrays. If ‘TRUE’ the result is coerced to the lowest possible dimension (see the examples). This only works for extracting elements, not for the replacement. See ‘drop’ for further details.
- Ok, immer näher, @akrun. Wenn ich eine zweite Spalte hinzufügen, vielleicht
key[,2] <- 2
bevor ich versuche, Teilmenge,key <- key[1:6000,]
hältkey
einen Daten-frame ohne Angabe vondrop=F
. Warum brauche ichdrop=F
wennlength(key)==1
aber nicht, wennlength(key)==2
? - Antwort klärt
- Grün. Wenn Sie nur eine Spalte, wie in der Dokumentation erwähnt, es wird dazu gezwungen niedrigsten dimension dh. ein Vektor
is.vector(key) [1] TRUE
, das ist nicht der Fall, wenn Sie mehr als eine Spalten. - wenn Sie
key[1:6000,,drop=F]
die Antwort, ich werde es akzeptieren. Ich werde schauen Sie in ein paar Tagen, und fügen Sie diese Antwort, wenn ich sehe nicht ein, nur um sicherzustellen, dass es geschlossen wird. Danke nochmal für Eure Hilfe. - Grün. Danke. dann werde ich es tun.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Laut der Dokumentation von
?Extract.data.frame
Oder, Sie könnte verwenden
subset
, aber in der Regel, dies ist ein bisschen langsamer. Hier die Zeile.Namen sind zahlen von1
zu10000
da,
Er wird dazu gezwungen einen Vektor Grunde, weil es sein kann, und das ist der Standard Zwang, wenn es nur 1 element. R versucht zu werden "hilfreich".
Dadurch halten Sie es als einen dataframe:
key[1:6000,,drop=F]
denn es hält meine Spalte name.as.data.frame(key[1:6000,])
ändert den Namen.