Я пытаюсь отформатировать эти данные для подачи в форматируемую таблицу.
Пример данных:
test <- tibble(group = c("A", "B", "B", "B", "C", "D"),
name = c("Steve", "Mike", "Paul", "Jaimie", "John", "Marco"),
year = c(1988, 2001, 2001, 2002, 1997, 2000))
, что дает:
# A tibble: 6 x 3
group name year
<chr> <chr> <dbl>
1 A Steve 1988
2 B Mike 2001
3 B Paul 2001
4 B Jaimie 2002
5 C John 1997
6 D Marco 2000
Я хочу, чтобы форматируемая таблица имела group
и year
в качестве столбцов, поэтому я распространяю по :
test %>%
mutate(grouped_id = row_number()) %>%
spread(key = year, value = name)
, что дает:
# A tibble: 6 x 7
group grouped_id `1988` `1997` `2000` `2001` `2002`
<chr> <int> <chr> <chr> <chr> <chr> <chr>
1 A 1 Steve NA NA NA NA
2 B 2 NA NA NA Mike NA
3 B 3 NA NA NA Paul NA
4 B 4 NA NA NA NA Jaimie
5 C 5 NA John NA NA NA
6 D 6 NA NA Marco NA NA
Для группы "B" я хочу, чтобы "Jaim ie" в столбце 2002
свернулось до первого ряда группы " B ", так что группа" B "не имеет трех рядов. Результат должен выглядеть следующим образом:
# A tibble: 6 x 7
group grouped_id `1988` `1997` `2000` `2001` `2002`
<chr> <int> <chr> <chr> <chr> <chr> <chr>
1 A 1 Steve NA NA NA NA
2 B 2 NA NA NA Mike Jaimie
3 B 3 NA NA NA Paul NA
4 C 5 NA John NA NA NA
5 D 6 NA NA Marco NA NA
Я пробовал это и это .
Спасибо за вашу помощь.