Преобразовать из значений строк в столбцы с идентификатором столбца - PullRequest
1 голос
/ 01 июля 2019

У меня есть эти данные:

df = data.frame(id = c(1,2,3), title = c("Google-Amazon","Amazon-Google-Yahoo","Yahoo-IMDF"), status = c("Open-Open", "Wait-Close-Open", "Close-Open"))

, и я хотел бы получить такой вывод:

  id Google Amazon Yahoo IMDF
   1   Open   Open    NA   NA
   2  Close   Wait  Open   NA
   3     NA     NA Close Open

То, что я до сих пор пробовал, это:

library(tidyverse)
df %>% 
    mutate(titlenew = strsplit(as.character(title), "-")) %>% 
    unnest(titlenew) %>%
    mutate(statusnew = strsplit(as.character(status), "-")) %>% 
    unnest(statusnew)

Какие шаги я могу сделать после этого?

1 Ответ

1 голос
/ 01 июля 2019

Можно разделить строки 'title', 'status' на separate_rows, а затем сделать spread, чтобы изменить форму с 'long' на 'wide'

library(tidyverse)
df %>%
    separate_rows(title, status) %>%
    spread(title, status)
#  id Amazon Google IMDF Yahoo
#1  1   Open   Open <NA>  <NA>
#2  2   Wait  Close <NA>  Open
#3  3   <NA>   <NA> Open Close
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...