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

add_row() silently converts factor to character vector #296

Closed
wibom opened this Issue Aug 18, 2017 · 1 comment

Comments

Projects
None yet
2 participants
@wibom

wibom commented Aug 18, 2017

mydata <- tibble(
     a = letters[1:3] %>% factor(),
     b = 1:3)

Adding a row at the bottom works as expected:

mydata %>% add_row(b = 4)
# A tibble: 4 x 2
       a     b
  <fctr> <dbl>
1      a     1
2      b     2
3      c     3
4     NA     4

But adding a row to the top silently converts mydata$a to a character vector:

 mydata %>% add_row(b = 4, .before = 1)
# A tibble: 4 x 2
      a     b
  <chr> <dbl>
1  <NA>     4
2     a     1
3     b     2
4     c     3

@krlmlr krlmlr closed this in b14143b Aug 18, 2017

@krlmlr

This comment has been minimized.

Member

krlmlr commented Aug 18, 2017

Thanks for reporting!

krlmlr added a commit that referenced this issue Aug 22, 2017

Merge tag 'v1.3.4'
Bug fixes
---------

- Values of length 1 in a `tibble()` call are recycled prior to evaluating subsequent arguments, improving consistency with `mutate()` (#213).
- Recycling of values of length 1 in a `tibble()` call maintains their class (#284).
- `add_row()` now always preserves the column data types of the input data frame the same way as `rbind()` does (#296).
- `lst()` now again handles duplicate names, the value defined last is used in case of a clash.
- Adding columns to zero-row data frames now also works when mixing lengths 1 and 0 in the new columns (#167).
- The `validate` argument is now also supported in `as_tibble.tbl_df()`, with default to `FALSE` (#278).  It must be passed as named argument, as in `as_tibble(validate = TRUE)`.

Formatting
----------

- `format_v()` now always surrounds lists with `[]` brackets, even if their length is one. This affects `glimpse()` output for list columns (#106).
- Factor levels are escaped when printing (#277).
- Non-syntactic names are now also escaped in `glimpse()` (#280).
- `tibble()` gives a consistent error message in the case of duplicate column names (#291).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment