Path to this page:
Subject: CVS commit: pkgsrc/math/R-tibble
From: Makoto Fujiwara
Date: 2021-06-05 10:30:24
Message id: 20210605083024.2582EFA95@cvs.NetBSD.org
Log Message:
(math/R-tibble) Updated 2.1.3 to 3.1.2
# tibble 3.1.2
- Bump required versions of ellipsis and vctrs to avoid warning during package load.
# tibble 3.1.1
- `num()` and `char()` are reexported from pillar (#880).
- `tribble()` and `frame_matrix()` give an error if values are named (#871, \
@lorenzwalthert).
- Document `cli.num_colors` option (#410).
- Fix `new_tibble()` examples for compatibility with pillar 1.6.0.
# tibble 3.1.0
## Bug fixes
- `has_rownames()` now works correctly for data frames with a \
`"row.names"` attribute malformed due to a problem in `structure()` \
(#852).
- `tbl[FALSE, "column"] <- x` adds new column again (#846).
## Features
- Importing pillar 1.5.0, cli and crayon are now suggested packages (#475).
- `size_sum()` is now reexported from pillar (#850, @topepo).
- `as_tibble()` hints more often to use the `.name_repair` argument if column \
names are invalid (#855).
- `as_tibble.table()` mentions `.name_repair` argument in the error message (#839).
## Internal
- Remove compatibility code for pillar < 1.5.0 (#861).
- Moved most functions to the "stable" lifecycle (#860).
# tibble 3.0.6
- `vec_ptype_abbr.tbl_df()` and `type_sum.tbl_df()` now uses the name of the \
topmost class for subclasses of `"tbl_df"` (#843).
- Ignore errors in `formats.Rmd` vignette.
- Avoid tidy evaluation in pillar compatibility code.
# tibble 3.0.5
- Use testthat edition 3, compatible with testthat 3.0.1 (#827, #832).
# tibble 3.0.4
## Compatibility
- Establish compatibility with upcoming pillar 1.5.0 (#818).
- `tbl_sum()` shows "data frame" instead of "tibble" for \
objects inheriting from `"tbl"` but not `"tbl_df"` (#818).
- Register `format.tbl()` and `print.tbl()` methods only if pillar doesn't (#816).
- Use `vctrs::num_as_location()` internally for subset assignment of rows and \
columns for better error messages (#746).
- Adapt tests to the development version of testthat.
## Bug fixes
- Fix documentation link to `base::Extract`.
- `add_row(df)` adds an empty row again (#809, @DavisVaughan).
# tibble 3.0.3
- Fix test compatibility with rlang 0.4.7.
- Fix warning about `needs_dots` arguments with pillar >= 1.4.5 (#798).
# tibble 3.0.2
## Bug fixes
- `[[` works with classed indexes again, e.g. created with `glue::glue()` (#778).
- `add_column()` works without warning for 0-column data frames (#786).
- `tribble()` now better handles named inputs (#775) and objects of non-vtrs \
classes like `lubridate::Period` (#784) and `formattable::formattable` (#785).
## Performance
- Subsetting and subassignment are faster (#780, #790, #794).
- `is.null()` is preferred over `is_null()` for speed.
- Implement continuous benchmarking (#793).
## Compatibility
- `is_vector_s3()` is no longer reexported from pillar (#789).
# tibble 3.0.1
## Compatibility fixes
- `[<-.tbl_df()` coerces matrices to data frames (#762).
- Use delayed import for cli to work around unload problems in downstream \
packages (#754).
## Bug fixes
- More soft-deprecation warnings are actually visible.
- If `.name_repair` is a function, no repair messages are shown (#763).
- Remove superseded signal for `as_tibble.list()`, because `as_tibble_row()` \
only works for size 1.
## Enhancements
- `as_tibble(validate = )` now always triggers a deprecation warning.
- Subsetting and subassignment of rows with one-column matrices work again, with \
a deprecation warning (#760).
- Attempts to update a tibble row with an atomic vector give a clearer error \
message. Recycling message for subassignment appears only if target size is != \
1.
- Tweak title of "Invariants" vignette.
# tibble 3.0.0
## Major breaking changes
- Subset assignment ("subassignment") and also subsetting has become \
stricter. Symptoms:
- Error: No common type for ...
- Error: Assigned data `...` must be compatible with ...
- `i` must have one dimension, not 2
- Error: Lossy cast from ... to ...
The "invariants" article at \
https://tibble.tidyverse.org/dev/articles/invariants.html describes the \
invariants that the operations follow in tibble, and the most important \
differences to data frames. We tried to make subsetting and subassignment as \
safe as possible, so that errors are caught early on, while introducing as \
little friction as possible.
- List classes are no longer automatically treated as vectors. Symptoms:
- Error: All columns in a tibble must be vectors
- Error: Expected a vector, not a `...` object
If you implement a class that wraps a list as S3 vector, you need to include \
`"list"` in the class:
```r
structure(x, class = c("your_s3_class", "list"))
```
Alternatively, implement a `vec_proxy()` method as described in \
https://vctrs.r-lib.org/reference/vec_data.html, or construct your class with \
`list_of()`.
- Added experimental support for inner names for all columns, of the form \
`tibble(a = c(b = 1))`. Inner names are no longer stripped when creating a \
tibble. They are maintained for slicing operations but not yet updated when \
assigning with a row subscript. This is a change that may break existing \
comparison tests that don't expect names in columns (#630). Symptoms:
- "names for target but not for current" when comparing
## Breaking changes
- `tibble()` now splices anonymous data frames, `tibble(tibble(a = 1), b = a)` \
is equivalent to `tibble(a = 1, b = a)`. This means that `tibble(iris)` now has \
five columns, use `tibble(iris = iris)` if the intention is to create a packed \
data frame (#581).
- The `name-repair` help topic is gone, refer to `?vctrs::vec_as_names` instead.
- `expression()` columns are converted to lists as a workaround for lacking \
support in vctrs (#657).
- `tribble()` is now stricter when combining values. All values in a column must \
be compatible, otherwise an error occurs (#204). The criteria for wrapping in a \
list column are now based on vctrs principles: non-vectors or vectors with \
`vctrs::vec_size()` unequal 1 are wrapped in lists.
- `$` warns unconditionally if column not found, `[[` doesn't warn.
- `add_row()` now uses `vctrs::vec_rbind()` under the hood, this means that all \
columns are combined with `vctrs::vec_c()`. In particular, factor columns will \
be converted to character if one of the columns is a character column.
## Soft deprecations
- Soft-deprecate `subclass` argument to `new_tibble()`.
- Soft-deprecate `as_tibble()` without arguments (#683).
- Preparing to move `glimpse()` and `tbl_sum()` to the pillar package. If your \
package implements these methods, please import the generics from pillar as soon \
as they become available there.
## Features
- Internals now make heavy use of the vctrs package, following most of the \
invariants defined there. Name repair is the responsibility of vctrs now (#464).
- All errors emitted directly by the package inherit from the \
`"tibble_error"` and `"rlang_error"` classes. In some cases, \
`"vctrs_error"` errors may be passed through. The exact subclass is \
subject to change.
Example: `tibble(a = quote(b))` raises an error that inherits from \
`"tibble_error_column_must_be_vector"`, `"tibble_error"` and \
`"rlang_error"`, and from `"error"` and \
`"condition"` like all errors. Do not rely on the wording of \
`"tibble_error_column_must_be_vector"`, this is likely to change.
Use the following pattern to catch errors emitted by tibble:
```r
tryCatch(
your_code(),
tibble_error = function(cnd) {
}
)
```
- New `tibble_row()` constructs tibbles that have exactly one row, or fails. \
Non-vector objects are automatically wrapped in a list, vectors (including \
lists) must have length one (#205).
- New `as_tibble_row()` and `as_tibble_col()` convert a bare vector to a one-row \
or one-column tibble, respectively. `as_tibble_col()` also works for non-bare \
vectors. Using `as_tibble()` for bare vectors is superseded (#447).
- `as_tibble.data.frame()` uses implicit row names if asked to create a column \
from row names. This allows lossless direct conversion of matrices with row \
names to tibbles (#567, @stufield).
- Implement `str.tbl_df()` (#480).
- `tribble()` now returns columns with `"unspecified"` type for 0-row \
tibbles.
- `add_row()` and `add_column()` now restore attributes to avoid errors when \
appending to sf objects or other tibble subclasses (#662).
- `add_column()` gains `.name_repair` argument. If not given, `.data` must have \
unique columns, with a deprecation message.
- Allow `POSIXlt` columns, they are now better supported by dplyr and other \
tools thanks to vctrs (#626).
- `tibble()` ignores NULL arguments, named or unnamed (#580).
- `view()` works for remote data sources by applying the same strategy as \
`print()` and `glimpse()`. The maximum number of rows in this case can be \
specified using the new `n` argument, by default it is taken from the new \
`"tibble.view_max"` option (#695).
## Output
- Formatting dimensions never uses scientific notation.
- `glimpse()` uses "Rows" and "Columns" instead of \
"Variables" and "Observations", because we're not sure if \
the data is tidy here (#614).
- `view()` now uses the created (or passed) title argument (#610, @xvrdm).
## Performance
- Construction and subsetting of large data frames is faster now (#717, \
@romainfrancois).
## Internal
- Import lifecycle package (#669).
- `new_tibble()` removes redundant subclasses from the `"class"` attribute.
- Using classed conditions. All classes start with `"tibble_error_"` \
and also contain `"tibble_error"` (#659).
- The magrittr pipe `%>%` is reexported.
Files: