当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《如何根据值数据在R中创建新列?》经验,为你挑选了1个好方法。

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

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中如何做到这一点?我正在研究重塑方法.但似乎这是一个不同的情况.



1> Sotos..:

这是一个想法通过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
#    
#1     1 FALSE  TRUE  TRUE
#2     2  TRUE FALSE  TRUE

推荐阅读
贴进你的心聆听你的世界
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有