Skip to content

Use two-dimensional indexing with [[#63

Merged
krlmlr merged 3 commits intomasterfrom
feature/58-2d-double
Mar 30, 2016
Merged

Use two-dimensional indexing with [[#63
krlmlr merged 3 commits intomasterfrom
feature/58-2d-double

Conversation

@krlmlr
Copy link
Member

@krlmlr krlmlr commented Mar 30, 2016

With tests.

Fixes #58.

@hadley: Is this safe, or should we disallow 2D indexing here?

@codecov-io
Copy link

Current coverage is 100.00%

Merging #63 into master will not affect coverage as of 449e948

@@            master     #63   diff @@
======================================
  Files           14      14       
  Stmts          493     500     +7
  Branches         0       0       
  Methods          0       0       
======================================
+ Hit            493     500     +7
  Partial          0       0       
  Missed           0       0       

Review entire Coverage Diff as of 449e948

Powered by Codecov. Updated on successful CI builds.

@hadley
Copy link
Member

hadley commented Mar 30, 2016

I think it's safe, but I think I'd rather not support it.

@krlmlr krlmlr merged commit cb38672 into master Mar 30, 2016
@krlmlr krlmlr deleted the feature/58-2d-double branch March 30, 2016 14:54
@jennybc
Copy link
Member

jennybc commented Apr 3, 2016

Is there any way you would un-deprecate x[[i, j]]? It seems handy for inspection when there are list columns and x[[j]][[i]] feels awkward to me. This decision seems separate from making sure that x[[i, ]] gives an error, which is what #58 was about. In fact, making x[[i, j]] work for tbl_dfs was a recently fixed issue (#29).

@hadley
Copy link
Member

hadley commented Apr 4, 2016

If it's something Jenny would find helpful, we should definitely support it.

krlmlr pushed a commit that referenced this pull request May 7, 2016
- Add missing test from dplyr.
- `type_sum()` shows only topmost class for S3 objects.
- Enhance `knit_print()` tests.
- Use new `expect_output_file()` from `testthat`.
- Two-dimensional indexing with `[[` works (#58, #63).
krlmlr pushed a commit that referenced this pull request 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`.
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Dec 10, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

should [[i, ]] be an error?

4 participants