У меня есть данные, которые выглядят следующим образом:
library(dplyr)
library(tidyr)
a <- data_frame(type=c("A", "A", "B", "B", "C", "D"))
print(a)
# A tibble: 6 x 1
type
<chr>
1 A
2 A
3 B
4 B
5 C
6 D
Где type
содержит категориальную информацию. Я пытаюсь преобразовать каждую категорию в type
в ее собственный столбец, закодированный как 1, если присутствует type
, и 0, если нет; Таким образом, конечный результат будет выглядеть так:
b <- data_frame(A=c(1, 1, 0, 0, 0, 0),
B=c(0, 0, 1, 1, 0, 0),
C=c(0, 0, 0, 0, 1, 0),
D=c(0, 0, 0, 0, 0, 1))
# A tibble: 6 x 4
A B C D
<dbl> <dbl> <dbl> <dbl>
1 1. 0. 0. 0.
2 1. 0. 0. 0.
3 0. 1. 0. 0.
4 0. 1. 0. 0.
5 0. 0. 1. 0.
6 0. 0. 0. 1.
Я пробовал следующее:
a$dat <- 1
spread(a, type, dat)
Однако, это не работает, так как есть несколько экземпляров некоторых категорий. Любая помощь будет оценена. Спасибо!