我有一个数据集,简化版如下:
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中如何做到这一点?我正在研究重塑方法.但似乎这是一个不同的情况.
这是一个想法通过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
# <dbl> <lgl> <lgl> <lgl>
#1 1 FALSE TRUE TRUE
#2 2 TRUE FALSE TRUE
Run Code Online (Sandbox Code Playgroud)