为了账号安全,请及时绑定邮箱和手机立即绑定

数据帧中分隔符处的分隔列

数据帧中分隔符处的分隔列

当年话下 2019-06-15 17:59:57
数据帧中分隔符处的分隔列我想根据分隔符将一个列分割成两个at数据帧。例如,a|b b|c成为a    b b    c在数据帧内。谢谢!
查看完整描述

3 回答

?
幕布斯7119047

TA贡献1794条经验 获得超8个赞

Hadley有一个非常优雅的解决方案,可以在他的数据帧中完成这个任务。reshape包,使用该函数colsplit.


require(reshape)

> df <- data.frame(ID=11:13, FOO=c('a|b','b|c','x|y'))

> df

  ID FOO

1 11 a|b

2 12 b|c

3 13 x|y

> df = transform(df, FOO = colsplit(FOO, split = "\\|", names = c('a', 'b')))

> df

  ID FOO.a FOO.b

1 11     a     b

2 12     b     c

3 13     x     y


查看完整回答
反对 回复 2019-06-15
?
人到中年有点甜

TA贡献1895条经验 获得超7个赞

新流行tidyr包用separate..它使用正则表达式,因此必须转义|


df <- data.frame(ID=11:13, FOO=c('a|b', 'b|c', 'x|y'))

separate(data = df, col = FOO, into = c("left", "right"), sep = "\\|")


  ID left right

1 11    a     b

2 12    b     c

3 13    x     y

虽然在这种情况下,缺省值足够聪明,可以工作(它查找要拆分的非字母数字字符)。


separate(data = df, col = FOO, into = c("left", "right"))


查看完整回答
反对 回复 2019-06-15
  • 3 回答
  • 0 关注
  • 587 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信