Превратить столбец с факторами в списке в матрицу модели в R
Итак, у меня есть data.frame, который я хотел бы превратить в model.matrix. Это все в R
Вот пример того, что у меня есть:
col1
1 "factor1","factor2"
2 "factor1"
3 "factor3"
4 "factor1","factor2"
Я хотел бы создать следующий вывод:
factor1 factor2 factor3
1 1 1 0
2 1 0 0
3 0 0 1
4 1 1 0
Буду признателен за любой совет! Я использовал sparse.model.matrix безрезультатно, поскольку он создает уникальные столбцы факторов для каждого списка, а не распознает их как списки схожих факторов.
Вот dput() начала данных (оно намного больше):
dd = structure(list(id = c("rs62224609", "", "", "", "rs62224609", "", "", "", "",
"", "", "", "", "", "", "", "rs587626763", "", "", "", "rs62224609", "", "", "", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "", "", "rs62224609,rs587626763", "", "", "", "", "", "",
"", "", "", "", "rs587626763", "", "", "", "", "", "", "", "", "", "", "",
"", "", "", "rs587626763", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "", "", "", ""), library = structure(c(4L,
4L, 4L, 5L, 5L, 5L, 4L, 4L, 5L, 5L, 4L, 4L, 4L, 4L, 4L, 4L, 5L,
5L, 3L, 5L, 2L, 4L, 4L, 2L, 2L, 3L, 1L, 4L, 2L, 2L, 5L, 2L, 2L,
2L, 4L, 3L, 3L, 4L, 5L, 3L, 4L, 3L, 4L, 5L, 4L, 5L, 2L, 5L, 5L,
2L, 2L, 4L, 3L, 5L, 3L, 5L, 5L, 4L, 1L, 5L, 2L, 3L, 5L, 5L, 1L,
4L, 1L, 2L, 4L, 5L, 1L, 3L, 4L, 4L, 2L, 1L, 4L, 2L, 5L, 5L, 1L,
5L, 2L, 3L, 3L, 1L, 1L, 3L, 5L, 4L, 5L, 5L, 5L, 4L, 2L, 1L, 3L,
3L, 2L, 1L), .Label = c("42", "43", "44", "45_1", "45_2"), class = "factor")), .Names = c("id",
"library"), row.names = c(NA, 100L), class = "data.frame")
head(dd, 8)
# id library
# 1 rs62224609 45_1
# 2 45_1
# 3 45_1
# 4 45_2
# 5 rs62224609 45_2
# 6 45_2
# 7 45_1
# 8 45_1
Желаемый вывод
rs62224609
1 1
2 0
3 0
4 0
5 1
6 0
7 0
8 0