Skip to content

Commit

Permalink
version 0.1.3
Browse files Browse the repository at this point in the history
  • Loading branch information
hadley authored and gaborcsardi committed Mar 14, 2014
1 parent 9123556 commit e191848
Show file tree
Hide file tree
Showing 29 changed files with 245 additions and 157 deletions.
8 changes: 4 additions & 4 deletions DESCRIPTION
@@ -1,7 +1,7 @@
Package: dplyr
Type: Package
Title: dplyr: a grammar of data manipulation
Version: 0.1.2
Version: 0.1.3
Author: Hadley Wickham <h.wickham@gmail.com>,
Romain Francois <romain@r-enthusiasts.com>
Maintainer: Hadley Wickham <h.wickham@gmail.com>
Expand All @@ -16,7 +16,7 @@ Suggests: hflights, RSQLite, RSQLite.extfuns, RMySQL, RPostgreSQL,
ggplot2, mgcv
VignetteBuilder: knitr
LazyData: yes
LinkingTo: Rcpp (>= 0.11.0), BH (>= 1.51.0-2)
LinkingTo: Rcpp (>= 0.11.1), BH (>= 1.51.0-2)
License: MIT + file LICENSE
Collate: 'RcppExports.R' 'all-equal.r' 'base.R' 'bench-compare.r'
'cbind.r' 'chain.r' 'compute-collect.r' 'copy-to.r'
Expand All @@ -35,7 +35,7 @@ Collate: 'RcppExports.R' 'all-equal.r' 'base.R' 'bench-compare.r'
'translate-sql-helpers.r' 'translate-sql-base.r'
'translate-sql-window.r' 'translate-sql.r' 'type-sum.r'
'utils-format.r' 'utils.r' 'view.r' 'zzz.r'
Packaged: 2014-02-24 14:57:47 UTC; hadley
Packaged: 2014-03-14 21:16:41 UTC; hadley
NeedsCompilation: yes
Repository: CRAN
Date/Publication: 2014-02-24 16:36:07
Date/Publication: 2014-03-15 00:36:22
56 changes: 28 additions & 28 deletions MD5
@@ -1,6 +1,6 @@
9562a9616e03bc929613661404fcfa2b *DESCRIPTION
ffb471b74ddb3ed14c68b94e80c8bd2f *DESCRIPTION
efcdf377730211753577de79ade6efdd *LICENSE
f85798b8637ba953e3809a652e16bb9e *NAMESPACE
dfa9b298237419bb0f9ae6b0ba2fb481 *NAMESPACE
a3c77dc900f7307b5c9be0f028c98c54 *R/RcppExports.R
05ca53535d5563dad7a4ab2977d38981 *R/all-equal.r
ddb4cf3f09b89bda6a1c338bad01eaaf *R/base.R
Expand All @@ -14,7 +14,7 @@ ebb12675ad0f086ae1f96b5853f03e1c *R/data-hflights.r
5744860420ce850f3f6f83c02d0d59d4 *R/data-nasa.r
dbc4f2616f56258bcf6b76f71fa826ea *R/data-temp.r
273c08017cd317e97b96410c2474924c *R/data.r
4136061f3154d4981dada3bca96f80e0 *R/dbi-s3.r
443e253d381bd462e77b8b6e5ba67ece *R/dbi-s3.r
2ad6e93a659bdb0307275e035028b20d *R/desc.r
10f579a57cc418ae8e83eca8c265b0cc *R/do.r
58978c7bf590a7369381542205230dcd *R/dplyr.r
Expand All @@ -28,14 +28,14 @@ d6c7d60c41541ff6f61ef15065efc869 *R/grouped-dt.r
acb7601f471d804cf744a93944ae5e24 *R/inline.r
2e8f63b45d4c33f74238609015ec43f6 *R/join-df.r
fdad6d946b904a191bd0e82ac7addcdb *R/join-dt.r
bdadffe13d2a6ac6b720f606b04919c4 *R/join-sql.r
9a0977d3fa2c7dd664942940de0d1f04 *R/join-sql.r
4294e1dcc0e52baadb5924d69ba7723f *R/join.r
284f0bc5a4ab77b391101a4bd076cd8e *R/lead-lag.R
fcf6a838baefa7aa2baafdd320905ff2 *R/location.R
e77ce019a92042c7e9aff43b471b274c *R/manip-cube.r
8f9a897715df8722119073e827f541dd *R/manip-df.r
35898e73ac28af17c9ecc267dd5a044b *R/manip-dt.r
32dd0477fa684a840bc0c1429956e6df *R/manip-grouped-dt.r
cad6208c82713597384ad24dd8626e91 *R/manip-dt.r
58dbefbbeef55f115ae53f789a8b1c70 *R/manip-grouped-dt.r
da6282cdc3e02970636b1f26db808cb8 *R/manip-sql.r
a3d5227861d70494c3f4104d7ab1c274 *R/manip.r
be30476e59730e96b59f0441bf618e2e *R/nth-value.R
Expand Down Expand Up @@ -69,7 +69,7 @@ a0d09b171ea3b2ae82265876b9bedec3 *R/tbl-df.r
34f0eea158e652e12db73e9c39e2f884 *R/translate-sql-window.r
b15b25978391ae58cac82a91b659f865 *R/translate-sql.r
e51520b2617e10c424fd0b45beaa259d *R/type-sum.r
85f584c1d3d83e9c3f7f9bc3866e17b2 *R/utils-format.r
ab8a65154aade259dba4b996121aab8c *R/utils-format.r
6491444d141099b758785078e6ccaf5b *R/utils.r
4d9128b66f58cee5fcb57a8e470c82c4 *R/view.r
1de6fcb5d9c556ccd931f51f425d946d *R/zzz.r
Expand All @@ -80,31 +80,31 @@ db40a0145d2a88069865e7f18d3dcf1f *data/nasa.rda
f3b987de99285483ea0cae5028207cfe *demo/bench-merge.R
d328eee82d3c54cb13af35bb696caaa6 *demo/bench-rbind.R
d6bff9b2006cfdf6fe61a1b6cffcd285 *demo/bench-set.R
ee27bbc32ea6fa4f471537ab2a629450 *inst/doc/databases.R
fec565e75f4edbf88fd294bf88fe4183 *inst/doc/databases.Rmd
3cc882bcfad57b5abf4b651d7f4ce4f9 *inst/doc/databases.html
f2c42b95eb8ebac57ee3bb91a62c4324 *inst/doc/databases.R
3503bfe827ec6123450c6de9da45f445 *inst/doc/databases.Rmd
d0119a9073373dad4968fcc0c4993320 *inst/doc/databases.html
53c28c818e61a19907db6a0b76786943 *inst/doc/hybrid-evaluation.R
5b90937d6069340c27f29589f8dd478f *inst/doc/hybrid-evaluation.Rmd
35e707c0233a6d87e5aec274bf8cb32a *inst/doc/hybrid-evaluation.html
7880dcbbc2ef5a9066a47fdf72d9b53f *inst/doc/introduction.R
05e037a31750ef8fd422dcff0b40b111 *inst/doc/introduction.Rmd
da8a118d325a2cf376a1f8f70b994db6 *inst/doc/introduction.html
aaa2bd4eeb0c7ba04eedaf49172b523e *inst/doc/window-functions.R
ff626a70b5119f8bcbe51f06cf57f892 *inst/doc/window-functions.Rmd
ae44f8b30264822383b34920767f7b9b *inst/doc/window-functions.html
fc3fd6d6c9a7bae5339eba50b18e0279 *inst/doc/introduction.Rmd
8d930dd5c36db6a1e44572eee4048335 *inst/doc/introduction.html
6ee55a112c571a3ffa65271b6a6946b5 *inst/doc/window-functions.R
18c6d2bdc11f9774d76bbc372b0c23ec *inst/doc/window-functions.Rmd
9d0ebffd3c9c19aaf3893d852abe0f03 *inst/doc/window-functions.html
2e55b2b2c065264bf676715799917446 *inst/include/dplyr.h
d712283197ffe37c10fb60ef728a4652 *inst/include/dplyr/BoolResult.h
38447847a9619459158c71a8d3a362e6 *inst/include/dplyr/Collecter.h
95bbd7e79710004cbcea0d4c3e864473 *inst/include/dplyr/Collecter.h
a95ac349adb05141ec17bc25ce8dcfd9 *inst/include/dplyr/DataFrameJoinVisitors.h
72ae8dca809b468f4c674062b8d90079 *inst/include/dplyr/DataFrameVisitors.h
e7f539d2e686294c257d5dd6edab558b *inst/include/dplyr/DataFrameVisitorsIndexMap.h
ec9e401da57308dad4df9f919a70262b *inst/include/dplyr/DataFrameVisitorsIndexSet.h
9c2ddb8a034638bbf84c729edb7764e1 *inst/include/dplyr/EmptySubset.h
0b201d156dd149ac2214246d83e0587c *inst/include/dplyr/FullDataFrame.h
07d812af781c7a597cf4e7cc7d1f8037 *inst/include/dplyr/Gatherer.h
180bf19356abec5515724dbd863af7b6 *inst/include/dplyr/GroupedDataFrame.h
899a9a8db739204288f693caf1ea69fd *inst/include/dplyr/GroupedDataFrame.h
81d6731f78b1e17697aaa93a465955d4 *inst/include/dplyr/JoinVisitor.h
c3bf69c1340361c1854ab5777db52675 *inst/include/dplyr/JoinVisitorImpl.h
8cf938eb62881cf95dc7786f4b481dcf *inst/include/dplyr/JoinVisitorImpl.h
5f2cab6f3f7d5d4d4c6c115856513617 *inst/include/dplyr/NamedListAccumulator.h
ba58b85eebf33f253f856976b8b401c3 *inst/include/dplyr/Order.h
5633c9fe5ef847bf5906eb29815ddff5 *inst/include/dplyr/OrderVisitor.h
Expand Down Expand Up @@ -149,7 +149,7 @@ a4a7b9d8ff53dfa73eb0feca626a6ea1 *inst/include/dplyr/Result/max.h
d3e3361e8ab107064f07e0822e3f1f65 *inst/include/dplyr/Result/min.h
baf9bbb433b610536594c214d68b42dc *inst/include/dplyr/SummarisedVariable.h
60bede6dba3153744e89c578d67394a1 *inst/include/dplyr/VectorVisitor.h
252a2841f207733058e3b3dca2f2c243 *inst/include/dplyr/VectorVisitorImpl.h
b8d26aff32b8d40719eebdda220b05dd *inst/include/dplyr/VectorVisitorImpl.h
0a2ea8b5c04bb2b4b3b4d0e769a8b690 *inst/include/dplyr/check_supported_type.h
e829621788476eb0ade32804c9da173b *inst/include/dplyr/comparisons.h
7d4d427a6dc08dc4e08140771945406c *inst/include/dplyr/registration.h
Expand Down Expand Up @@ -184,7 +184,7 @@ cd00f5b80e3fe023bb254a819e17a572 *inst/include/tools/hash.h
41148b4d529eef9ebf82f4719cdb48dd *inst/include/tools/tools.h
e8314bb53785945b394173724249edb0 *inst/include/tools/wrap_subset.h
da3fe6cebc883b4d0581bdcda1ca7146 *inst/tests/helper-data.r
376fed4bfd27f2211423537539b88319 *inst/tests/test-arrange.r
1a8aa7229346de4146476cd2992cacbc *inst/tests/test-arrange.r
4d52dee57e752f870273d56d01904474 *inst/tests/test-cbind.R
39988efc666e80566c47eb579443096d *inst/tests/test-copying.R
7428eb39633a9cdcba500c2550774a43 *inst/tests/test-count.r
Expand All @@ -195,13 +195,13 @@ b8182a80cabc5e0dd47a5a76a9d4c66c *inst/tests/test-equiv-manip.r
e4a0af09c1235803412874a1e43d3088 *inst/tests/test-filter-windowed.R
9667de562a8713b78df2577583c0f593 *inst/tests/test-filter.r
8bfc92dd97695014b3b0fe5567ef71bf *inst/tests/test-group-by.r
9d71f585287a49567ca67e8337afd40c *inst/tests/test-joins.r
00770ba2f1c5bca8f81bc901c0c6b86f *inst/tests/test-joins.r
f24c693643de1ea17b87c1df9d32d1ec *inst/tests/test-lead-lag.R
3566efc0ada3ac3ad8c09f6d9e3ce2c2 *inst/tests/test-mutate-windowed.R
0775fdf22738928c152a63a0448bfdf2 *inst/tests/test-mutate.r
881e7e5e30b63f953657d5b89532e760 *inst/tests/test-nth-value.R
42cb5694e5d14710fa3ecaf6ce519035 *inst/tests/test-rbind.r
4bdde1886d71f2f89d58b3563db309df *inst/tests/test-select.r
e284b22d0a7d0ca0264526e6dfc9847e *inst/tests/test-rbind.r
8d106d9d27aec54eede28bfdfbd9c918 *inst/tests/test-select.r
bf6c33082e25991bc81b4bbc54ea13fd *inst/tests/test-sql-escape.r
0f1b6d7ab07eb412c9fecf2c76748921 *inst/tests/test-sql-translation.r
e1a5cffac4ebe5f0d9a773f5c6b0c37a *inst/tests/test-sqlite-do.r
Expand Down Expand Up @@ -234,7 +234,7 @@ f79bf9c4ca8f9b3b810419356f654590 *man/hflights_df.Rd
7c40154e5820f7993d5d12a50d70fa20 *man/join.Rd
28ab0e094aafee09c186b8b8cf0ba5a2 *man/join.tbl_df.Rd
0e46ac1917fd5bc3e9e36218705afe81 *man/join.tbl_dt.Rd
09d836d3bf214774f4a9f20eba0fc686 *man/join.tbl_sql.Rd
69f8f22450c6ee248b0db2571c5930e4 *man/join.tbl_sql.Rd
6a81c20b2f495f643fc4edd5055592e9 *man/lahman.Rd
4741950e34ee9a9e0d33b127f8fcb319 *man/lead-lag.Rd
89c5b5da3f33d9e875975668b0b50e2a *man/location.Rd
Expand Down Expand Up @@ -282,19 +282,19 @@ dde90f02a4ecf1906e681d2ad580bccf *src/Makevars
dde90f02a4ecf1906e681d2ad580bccf *src/Makevars.win
f01fca84c3e964251c648d7aca863b80 *src/RcppExports.cpp
a6c5f62c1c14b7794bc7bfcc59ca8c77 *src/address.cpp
8fb59ae44735657c3c6176840653d6ff *src/dplyr.cpp
f22b7e38a7ed37e5a5cd19a936d2fea1 *src/dplyr.cpp
90995377fb4770719a3271327bc5d3fd *src/filter.cpp
e2cbde53c2cbc6feefbbbd265d9347c7 *src/init.cpp
6f882eb21a671ae3f49e2a7c9529c43c *src/window.cpp
3a7a51bb5059fdf3d254d644385012d5 *tests/test-all.R
fec565e75f4edbf88fd294bf88fe4183 *vignettes/databases.Rmd
3503bfe827ec6123450c6de9da45f445 *vignettes/databases.Rmd
82084b31c1380fe79dd08e41069b8de3 *vignettes/disabled/benchmark-baseball.Rmd
5b90937d6069340c27f29589f8dd478f *vignettes/hybrid-evaluation.Rmd
05e037a31750ef8fd422dcff0b40b111 *vignettes/introduction.Rmd
fc3fd6d6c9a7bae5339eba50b18e0279 *vignettes/introduction.Rmd
50c26b952a43373d699173780d05a337 *vignettes/joins.graffle
391a1e1601255c9e368dbd32b68b6126 *vignettes/notes/mysql-setup.Rmd
5c93a8a98d068f0f241879dbe7e21ef9 *vignettes/notes/postgres-setup.Rmd
ef5a210df50e79ac302dd92dd1e15ffb *vignettes/notes/vagrant-setup.Rmd
ff626a70b5119f8bcbe51f06cf57f892 *vignettes/window-functions.Rmd
18c6d2bdc11f9774d76bbc372b0c23ec *vignettes/window-functions.Rmd
83cdde894e0c44ffda5a9dbae3c80092 *vignettes/windows.graffle
2cc473a6bd316193615aee5045fcc835 *vignettes/windows.png
1 change: 1 addition & 0 deletions NAMESPACE
Expand Up @@ -182,6 +182,7 @@ S3method(sql_create_indexes,MySQLConnection)
S3method(sql_insert_into,MySQLConnection)
S3method(sql_insert_into,PostgreSQLConnection)
S3method(sql_insert_into,SQLiteConnection)
S3method(sql_select,DBIConnection)
S3method(src_tbls,src_local)
S3method(src_tbls,src_sql)
S3method(summarise,data.frame)
Expand Down
7 changes: 6 additions & 1 deletion R/dbi-s3.r
Expand Up @@ -397,7 +397,12 @@ sql_analyze.MySQLConnection <- function(con, table) {
qry_run(con, sql)
}

sql_select <- function(con, select, from, where = NULL, group_by = NULL,
sql_select <- function(con, ...) {
UseMethod("sql_select")
}

#' @export
sql_select.DBIConnection <- function(con, select, from, where = NULL, group_by = NULL,
having = NULL, order_by = NULL, limit = NULL,
offset = NULL) {

Expand Down
23 changes: 13 additions & 10 deletions R/join-sql.r
Expand Up @@ -64,7 +64,7 @@
#' semi_join(people, hof)
#'
#' # All people not in the hall of fame
#' semi_join(people, hof, anti = TRUE)
#' anti_join(people, hof)
#'
#' # Find all managers
#' manager <- tbl(lahman_sqlite(), "Managers")
Expand Down Expand Up @@ -118,21 +118,24 @@ join_sql <- function(x, y, type, by = NULL, copy = FALSE, auto_index = FALSE,
...) {
type <- match.arg(type, c("left", "right", "inner", "full"))
by <- by %||% common_by(x, y)

y <- auto_copy(x, y, copy, indexes = if (auto_index) list(by))

# Ensure tables have unique names
x_names <- auto_names(x$select)
y_names <- auto_names(y$select)

uniques <- unique_names(x_names, y_names, by)
if (!is.null(uniques)) {
if (is.null(uniques)) {
sel_vars <- c(x_names, y_names)
} else {
x <- update(x, select = setNames(x$select, uniques$x))
y <- update(x, select = setNames(y$select, uniques$y))
y <- update(y, select = setNames(y$select, uniques$y))

sel_vars <- unique(c(uniques$x, uniques$y))
}
vars <- lapply(c(by, setdiff(sel_vars, by)), as.name)

vars <- lapply(c(by, setdiff(c(x_names, y_names), by)), as.name)

join <- switch(type, left = sql("LEFT"), inner = sql("INNER"),
right = stop("Right join not supported", call. = FALSE),
full = stop("Full join not supported", call. = FALSE))
Expand All @@ -154,16 +157,16 @@ is.join <- function(x) {

semi_join_sql <- function(x, y, anti = FALSE, by = NULL, copy = FALSE,
auto_index = FALSE, ...) {

by <- by %||% common_by(x, y)
y <- auto_copy(x, y, copy, indexes = if (auto_index) list(by))

con <- x$src$con
by_escaped <- escape(ident(by), collapse = NULL, con = con)
left <- escape(ident("_LEFT"), con = con)
right <- escape(ident("_RIGHT"), con = con)
join <- sql(paste0(left, ".", by_escaped, " = ", right, ".", by_escaped,

join <- sql(paste0(left, ".", by_escaped, " = ", right, ".", by_escaped,
collapse = " AND "))

from <- build_sql(
Expand Down
5 changes: 4 additions & 1 deletion R/manip-dt.r
Expand Up @@ -123,7 +123,10 @@ arrange.tbl_dt <- function(.data, ...) {
#' @export
select.data.table <- function(.data, ...) {
vars <- select_vars(names(.data), ..., env = parent.frame())
.data[, vars, drop = FALSE, with = FALSE]

out <- .data[, vars, drop = FALSE, with = FALSE]
setnames(out, names(vars))
out
}

#' @export
Expand Down
1 change: 1 addition & 0 deletions R/manip-grouped-dt.r
Expand Up @@ -141,6 +141,7 @@ arrange.grouped_dt <- function(.data, ...) {
select.grouped_dt <- function(.data, ...) {
vars <- select_vars(names(.data), ..., env = parent.frame())
out <- .data[, vars, drop = FALSE, with = FALSE]
setnames(out, names(vars))

grouped_dt(
data = out,
Expand Down
16 changes: 9 additions & 7 deletions R/utils-format.r
Expand Up @@ -15,7 +15,7 @@ dim_desc <- function(x) {
d <- dim(x)
d2 <- format(d, big.mark = ",", justify = "none", trim = TRUE)
d2[is.na(d)] <- "??"

paste0("[", paste0(d2, collapse = " x "), "]")
}

Expand All @@ -24,16 +24,18 @@ dim_desc <- function(x) {
trunc_mat <- function(x, n = NULL) {
rows <- nrow(x)
if (!is.na(rows) && rows == 0) return()

if (is.null(n)) {
if (is.na(rows) || rows > getOption("dplyr.print_max")) {
n <- getOption("dplyr.print_min")
n <- getOption("dplyr.print_min")
} else {
n <- rows
}
}

df <- as.data.frame(head(x, n))
if (nrow(df) == 0) return()

mat <- format(df, justify = "left")

width <- getOption("width")
Expand All @@ -50,7 +52,7 @@ trunc_mat <- function(x, n = NULL) {
df[[1]] <- substr(df[[1]], 1, width)
}
shrunk <- format(df[, !too_wide, drop = FALSE])

needs_dots <- is.na(rows) || rows > n
if (needs_dots) {
dot_width <- pmin(w[-1][!too_wide], 3)
Expand All @@ -64,14 +66,14 @@ trunc_mat <- function(x, n = NULL) {
vars <- colnames(mat)[too_wide]
types <- vapply(df[too_wide], type_sum, character(1))
var_types <- paste0(vars, " (", types, ")", collapse = ", ")

cat(wrap("Variables not shown: ", var_types), "\n", sep = "")
}
}

wrap <- function(..., indent = 0) {
x <- paste0(..., collapse = "")
wrapped <- strwrap(x, indent = indent, exdent = indent + 2,
wrapped <- strwrap(x, indent = indent, exdent = indent + 2,
width = getOption("width"))
paste0(wrapped, collapse = "\n")
}
Expand Down
10 changes: 5 additions & 5 deletions inst/doc/databases.R
Expand Up @@ -83,13 +83,13 @@ translate_sql(1L)


## ------------------------------------------------------------------------
translate_sql(glob(x, y))
translate_sql(glob(x, y))
translate_sql(x %like% "ab*")


## ------------------------------------------------------------------------
planes <- group_by(hflights_sqlite, TailNum)
delay <- summarise(planes,
delay <- summarise(planes,
count = n(),
dist = mean(Distance),
delay = mean(ArrDelay)
Expand All @@ -107,12 +107,12 @@ if (has_lahman("postgres")) {
## ------------------------------------------------------------------------
if (has_lahman("postgres")) {
daily <- group_by(hflights_postgres, Year, Month, DayofMonth)

# Find the most and least delayed flight each day
bestworst <- filter(daily, ArrDelay == min(ArrDelay) ||
bestworst <- filter(daily, ArrDelay == min(ArrDelay) ||
ArrDelay == max(ArrDelay))
bestworst$query

# Rank each flight within a daily
ranked <- mutate(daily, rank = rank(desc(ArrDelay)))
ranked$query
Expand Down

0 comments on commit e191848

Please sign in to comment.