Пользователь задал вопрос в github, https://github.com/tidyverse/tidyr/issues/41, и я вижу, что Хэдли определил это как ошибку. Однако решения не было. Я все еще испытываю эту проблему, когда у меня есть повторяющиеся идентификаторы в моем фрейме данных
structure(list(key = c("a", "b", "c", "d", "c"), value = c(1,
2, 3, 2, 4)), .Names = c("key", "value"), row.names = c(NA, -5L
), class = c("tbl_df", "tbl", "data.frame"))
Теперь, когда я использую распространение из dplyr, у меня все еще остается разреженная матрица с NA, потому что у меня есть повторяющиеся идентификаторы, введите здесь код
dftest %>% spread(key,value)
Error: Duplicate identifiers for rows (3, 5)
Итак, я добавляю строку идентификатора
> dftest$id<-seq(1,5)
> dftest %>% spread(key,value)
# A tibble: 5 x 5
id a b c d
<int> <dbl> <dbl> <dbl> <dbl>
1 1 1. NA NA NA
2 2 NA 2. NA NA
3 3 NA NA 3. NA
4 4 NA NA NA 2.
5 5 NA NA 4. NA
Но диагональный фрейм данных - это не то, что мне нужно. Я бы хотел, чтобы верхняя строка вывода спреда была 1,2,3,2 в строке 1. Тогда значение в столбце c попадет прямо под, в строке 2. То есть мне не нужно диагональная матрица с НА. Я что-то упускаю? - со смирением спрашиваю.
spread
- person akrun   schedule 16.03.2018