Why is my last step converting the data frame to a vector? I want to keep the first 6000 observations in the data frame key
.
set.seed(1)
key
-
key1 <- key[1:6000,,drop=F] #should prevent the data.frame from converting to a vector.
According to the documentation of ?Extract.data.frame
drop: logical. If ‘TRUE’ the result is coerced to the lowest
possible dimension. The default is to drop if only one
column is left, but not to drop if only one row is left.
Or, you could use subset
, but usually, this is a bit slower. Here the row.names are numbers from 1
to 10000
key2 <- subset(key, as.numeric(rownames(key)) <6000)
is.data.frame(key2)
#[1] TRUE
because,
## S3 method for class 'data.frame'
subset(x, subset, select, drop = FALSE, ...) #by default it uses drop=F
- 热议问题