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

标签 r dplyr

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

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 方法。但似乎这是一个不同的情况。

最佳答案

这是一个来自 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

关于r - 如何根据值数据在 R 中创建新列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41780899/

相关文章:

r - 基本 R 中具有不同符号大小的图例

r - 病例对照研究 "exact"与重叠时间间隔匹配

r - 带有 ifelse 和两个对象的自定义函数需要以动态方式从正确的列中读取 R

r - 如何创建一个等于 R 数据框中另一列的前 5 个观察结果的乘积的列?

r - 使用来自另一个 data.frame 的数据和条件修改 data.frame 列

r - 极坐标图的对称轴标签

r - 有没有办法合并 dplyr::filter_at 结果? (一次过滤多个变量)

r - 按组查找特定日期上下最接近的值

r - 如何反转R中模式中数据帧的顺序

r - 使用 %>% 运算符获取向量中特定元素的索引