如何根据值数据在R中创建新列?

Hap*_*ing 2 r dplyr

我有一个数据集,简化版如下:

input <- data_frame(key=c(1,2),Color=c("Red,Green","Blue,Red"))
input 
   key     Color
   1     Red,Green
   2     Blue,Red
Run Code Online (Sandbox Code Playgroud)

我想使用Color列创建额外的功能,如下所示:

    key Color.Red Color.Green Color.Blue
    1      TRUE        TRUE      FALSE
    2      TRUE       FALSE       TRUE
Run Code Online (Sandbox Code Playgroud)

在R中如何做到这一点?我正在研究重塑方法.但似乎这是一个不同的情况.

Sot*_*tos 6

这是一个想法通过dplyrtidyr

library(dplyr)
library(tidyr)

input %>% 
  unnest(Color = strsplit(Color, ',')) %>% 
  group_by(key) %>% 
  mutate(new = TRUE) %>% 
  spread(Color, new, fill = FALSE) %>%
  ungroup()

#Source: local data frame [2 x 4]
#Groups: key [2]

#    key  Blue Green   Red
# <dbl> <lgl> <lgl> <lgl>
#1     1 FALSE  TRUE  TRUE
#2     2  TRUE FALSE  TRUE
Run Code Online (Sandbox Code Playgroud)