Description Usage Arguments Details Examples
Alternative to built-in Extract
or [
. Allows for
extraction operations that are ambivalent to the data type of the object. For
example, extract(x,i)
will work on lists, vectors, data frames,
matrices, etc.
1 |
x |
object from which to extract elements |
i, j |
indices specifying elements to extract. Can be |
Extraction is 2-100x faster on data frames than with the built in operation - but does not preserve row names.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | #Typically about twice as fast on normal subselections
orders<-data.frame(orderNum=1:1e5,
sku=sample(1e3, 1e5, TRUE),
customer=sample(1e4,1e5,TRUE))
a<-sample(1e5,1e4)
system.time(b<-orders[a,])
system.time(c<-extract(orders,a))
rownames(b)<-NULL
rownames(c)<-NULL
identical(b,c)
#Speedup increases to 50-100x with oversampling
a<-sample(1e5,1e6,TRUE)
system.time(b<-orders[a,])
system.time(c<-extract(orders,a))
rownames(b)<-NULL
rownames(c)<-NULL
identical(b,c)
#Can create function calls that work for multiple data types
alist<-as.list(1:50)
avector<-1:50
extract(alist,1:5)
extract(avector,1:5)
extract(orders,1:5)#'
## Not run:
orders<-data.frame(orderNum=as.character(sample(1e5, 1e6, TRUE)),
sku=sample(1e3, 1e6, TRUE),
customer=sample(1e4,1e6,TRUE))
system.time(a<-sample(1e6,1e7,TRUE))
system.time(b<-orders[a,])
system.time(c<-extract(orders,a))
## End(Not run)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.