如何将一个字符列分割为两个列? [英] How do I separate a character column into two columns?

查看:0
本文介绍了如何将一个字符列分割为两个列?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是我拥有的:

condition    uncomfortable
   <fct>             <dbl>
 fichero               1
 fichero               1
 realhero              1
 realhero              2
 ficvillain            4
 ficvillain            5
 realvillain           8
 realvillain           3

如何获得此信息:

fictionality    character type    uncomfortable
   
 fic                hero              1
 fic                hero              1
 real               hero              1
 real               hero              2
 fic                villain           4
 fic                villain           5
 real               villain           8
 real               villain           3

也许separate()strsplit()在这里有用,但我不知道如何使用它们。

推荐答案

您可以使用extract来自tidyr

tidyr::extract(df, condition, c('fictionality', 'type'), '(fic|real)(hero|villain)')

# fictionality    type uncomfortable
#1          fic    hero             1
#2          fic    hero             1
#3         real    hero             1
#4         real    hero             2
#5          fic villain             4
#6          fic villain             5
#7         real villain             8
#8         real villain             3

或以R为单位:

transform(df, fictionality = sub('hero|villain', '', condition), 
              type = sub('fic|real', '', condition))

数据

df <- structure(list(condition = c("fichero", "fichero", "realhero", 
"realhero", "ficvillain", "ficvillain", "realvillain", "realvillain"
), uncomfortable = c(1L, 1L, 1L, 2L, 4L, 5L, 8L, 3L)), 
class = "data.frame", row.names = c(NA, -8L))

这篇关于如何将一个字符列分割为两个列?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆