我有一个数据集,简化版如下:
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 中执行此操作?我正在研究 reshape 方法。但似乎这是一个不同的情况。
最佳答案
这是一个来自 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
关于r - 如何根据值数据在 R 中创建新列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41780899/