spread with a data.frame of only two columns key and value #41
Comments
To be clear, the output is: > df <- data.frame( x = c(1, 2), y = c(3, 4))
> spread(df, x, y)
1 2
1 3 NA
2 NA 4 I would have expected the output to have one row:
|
Me too: in the absence of an identifying column it should all be assumed to have the same identifier. This is important in nested (group) processing. Right now it's necessary to ungroup before spread to bring the identifiers into scope. |
I've also just run into this (tidyr 0.3.1). @hadley, can you weigh in on whether this is a bug or expected behavior? FWIW I was trying to use library(tidyr)
library(broom)
library(dplyr)
d <- data_frame(x = runif(100, 0, 10),
y = 5 - x + rnorm(100))
d %>%
lm(y ~ x, data=.) %>%
tidy() %>%
select(term, estimate) %>%
spread(term, estimate) %>%
mutate(x_intercept = -`(Intercept)` / x)
#> (Intercept) x x_intercept
#> 1 5.148648 NA NA
#> 2 NA -1.010463 NA
d %>%
lm(y ~ x, data=.) %>%
tidy() %>%
select(term, estimate) %>%
mutate(dummy='') %>%
spread(term, estimate) %>%
mutate(x_intercept = -`(Intercept)` / x)
#> dummy (Intercept) x x_intercept
#> 1 5.148648 -1.010463 5.095337 Seems like a perfectly good use case for |
More illuminating example: data_frame(
key = c("a", "b", "c"),
value = c(1, 2, 3)
) %>%
spread(key, value) This is definitely a bug |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
I expected df to have only one row. Is is really the intended behavior?
The text was updated successfully, but these errors were encountered: