我有一个数据集,简化版如下:
input <- data_frame(key=c(1,2),Color=c("Red,Green","Blue,Red")) input key Color 1 Red,Green 2 Blue,Red
我想使用Color列创建额外的功能,如下所示:
key Color.Red Color.Green Color.Blue 1 TRUE TRUE FALSE 2 TRUE FALSE TRUE
在R中如何做到这一点?我正在研究重塑方法.但似乎这是一个不同的情况.
这是一个想法通过dplyr
和tidyr
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 ##1 1 FALSE TRUE TRUE #2 2 TRUE FALSE TRUE