Как преобразовать вектор данных категории в кадр или матрицу - PullRequest
0 голосов
/ 24 апреля 2019

У меня есть этот набор данных:

ID <- c("0001", "0003", "0002","0004","0005")
YourName <- c("Juan", "Pedro", "Ana", "Alejandra","Alex")
GenderPeople <- c("Male","Male","Female","Female","Male")

DF <- data.frame(ID, YourName, GenderPeople)

Я хочу преобразовать столбец «GenderPeople» в матрицу (или фрейм данных), которая выглядит следующим образом:

    ID  YourName GenderPeople_Male GenderPeople_Female
  0001      Juan                 1                   0
  0003     Pedro                 1                   0
  0002       Ana                 0                   1
  0004 Alejandra                 0                   1
  0005      Alex                 1                   0

Большое спасибо за вашу помощь.

Привет!

Ответы [ 2 ]

2 голосов
/ 24 апреля 2019
library(dummies)

dummy.data.frame(DF, names = "GenderPeople", sep = "_")

#     ID  YourName GenderPeople_Female GenderPeople_Male
# 1 0001      Juan                   0                 1
# 2 0003     Pedro                   0                 1
# 3 0002       Ana                   1                 0
# 4 0004 Alejandra                   1                 0
# 5 0005      Alex                   0                 1
2 голосов
/ 24 апреля 2019

Мы можем использовать spread после создания столбца 1 с

library(tidyverse)
DF %>% 
  mutate(n = 1, GenderPeople = str_c("GenderPeople", GenderPeople, sep="_")) %>% 
  spread(GenderPeople, n, fill = 0)
#     ID  YourName GenderPeople_Female GenderPeople_Male
#1 0001      Juan                   0                 1
#2 0002       Ana                   1                 0
#3 0003     Pedro                   0                 1
#4 0004 Alejandra                   1                 0
#5 0005      Alex                   0                 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...