Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement as_data_frame.tbl() and as.data.frame.tbl() #1752

Closed
2 tasks
krlmlr opened this issue Apr 5, 2016 · 6 comments
Closed
2 tasks

Implement as_data_frame.tbl() and as.data.frame.tbl() #1752

krlmlr opened this issue Apr 5, 2016 · 6 comments
Milestone

Comments

@krlmlr
Copy link
Member

krlmlr commented Apr 5, 2016

  • forwarded to collect() + consider deprecating collect()
  • to throw an error asking about explicit collect()

Other data.frame-like accessors like [ and [[ should perhaps throw an error, too.

This can't be in the tibble package, because the collect() method isn't defined there.

@hadley
Copy link
Member

hadley commented Apr 5, 2016

I much prefer collect() (even though it does the same thing), because it makes it more clear why you are calling it (in the same way it's useful to have both identity() and force() even though they do the same thing)

@krlmlr
Copy link
Member Author

krlmlr commented Apr 5, 2016

Okay to forward as_data_frame() to collect() then?

@hadley
Copy link
Member

hadley commented Apr 5, 2016

I think so

@krlmlr
Copy link
Member Author

krlmlr commented Apr 6, 2016

  • Default to n=Inf? -> Depends on if interrupt checking is done properly, or if we have a progress bar
  • Consider DBI::dbFetchChunks()

@hadley
Copy link
Member

hadley commented Apr 19, 2016

Want to do a PR for this?

@krlmlr
Copy link
Member Author

krlmlr commented May 9, 2016

as_data_frame.tbl() will be forwarded to as.data.frame.tbl() by tidyverse/tibble#71, I think -- this should be explicitly tested in dplyr, which I'll do once the tests pass again on Travis.

How about moving the logic for chunked fetches to a separate package/module, e.g. https://github.com/krlmlr/pumpr?

krlmlr added a commit to tidyverse/tibble that referenced this issue May 11, 2016
krlmlr pushed a commit to tidyverse/tibble that referenced this issue May 11, 2016
- New `enframe()` that converts vectors to two-column tibbles (#31, #74).
- Fix compatibility with `knitr` 1.13 (#76).
- Implement `as_data_frame.default()` (#71, tidyverse/dplyr#1752).
@hadley hadley added this to the 0.5 milestone May 26, 2016
krlmlr pushed a commit to tidyverse/tibble that referenced this issue Jul 4, 2016
Follow-up release.

- `tibble()` is no longer an alias for `frame_data()` (#82).
- Remove `tbl_df()` (#57).
- `$` returns `NULL` if column not found, without partial matching. A warning is given (#109).
- `[[` returns `NULL` if column not found (#109).

- Reworked output: More concise summary (begins with hash `#` and contains more text (#95)), removed empty line, showing number of hidden rows and columns (#51). The trailing metadata also begins with hash `#` (#101). Presence of row names is indicated by a star in printed output (#72).
- Format `NA` values in character columns as `<NA>`, like `print.data.frame()` does (#69).
- The number of printed extra cols is now an option (#68, @lionel-).
- Computation of column width properly handles wide (e.g., Chinese) characters, tests still fail on Windows (#100).
- `glimpse()` shows nesting structure for lists and uses angle brackets for type (#98).
- Tibbles with `POSIXlt` columns can be printed now, the text `<POSIXlt>` is shown as placeholder to encourage usage of `POSIXct` (#86).
- `type_sum()` shows only topmost class for S3 objects.

- Strict checking of integer and logical column indexes. For integers, passing a non-integer index or an out-of-bounds index raises an error. For logicals, only vectors of length 1 or `ncol` are supported. Passing a matrix or an array now raises an error in any case (#83).
- Warn if setting non-`NULL` row names (#75).
- Consistently surround variable names with single quotes in error messages.
- Use "Unknown column 'x'" as error message if column not found, like base R (#94).
- `stop()` and `warning()` are now always called with `call. = FALSE`.

- The `.Dim` attribute is silently stripped from columns that are 1d matrices (#84).
- Converting a tibble without row names to a regular data frame does not add explicit row names.
- `as_tibble.data.frame()` preserves attributes, and uses `as_tibble.list()` to calling overriden methods which may lead to endless recursion.

- New `has_name() (#102).
- Prefer `tibble()` and `as_tibble()` over `data_frame()` and `as_data_frame()` in code and documentation (#82).
- New `is.tibble()` and `is_tibble()` (#79).
- New `enframe()` that converts vectors to two-column tibbles (#31, #74).
- `obj_sum()` and `type_sum()` show `"tibble"` instead of `"tbl_df"` for tibbles (#82).
- `as_tibble.data.frame()` gains `validate` argument (as in `as_tibble.list()`), if `TRUE` the input is validated.
- Implement `as_tibble.default()` (#71, tidyverse/dplyr#1752).
- `has_rownames()` supports arguments that are not data frames.

- Two-dimensional indexing with `[[` works (#58, #63).
- Subsetting with empty index (e.g., `x[]`) also removes row names.

- Document behavior of `as_tibble.tbl_df()` for subclasses (#60).
- Document and test that subsetting removes row names.

- Don't rely on `knitr` internals for testing (#78).
- Fix compatibility with `knitr` 1.13 (#76).
- Enhance `knit_print()` tests.
- Provide default implementation for `tbl_sum.tbl_sql()` and `tbl_sum.tbl_grouped_df()` to allow `dplyr` release before a `tibble` release.
- Explicit tests for `format_v()` (#98).
- Test output for `NULL` value of `tbl_sum()`.
- Test subsetting in all variants (#62).
- Add missing test from dplyr.
- Use new `expect_output_file()` from `testthat`.
@lock lock bot locked as resolved and limited conversation to collaborators Jun 9, 2018
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants