猿问

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

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

我想根据分隔符将一个列分割成两个at数据帧。例如,

a|b
b|c

成为

a    b
b    c

在数据帧内。

谢谢!


当年话下
浏览 588回答 3
3回答

幕布斯7119047

Hadley有一个非常优雅的解决方案,可以在他的数据帧中完成这个任务。reshape包,使用该函数colsplit.require(reshape)> df <- data.frame(ID=11:13, FOO=c('a|b','b|c','x|y'))> df&nbsp; ID FOO1 11 a|b2 12 b|c3 13 x|y> df = transform(df, FOO = colsplit(FOO, split = "\\|", names = c('a', 'b')))> df&nbsp; ID FOO.a FOO.b1 11&nbsp; &nbsp; &nbsp;a&nbsp; &nbsp; &nbsp;b2 12&nbsp; &nbsp; &nbsp;b&nbsp; &nbsp; &nbsp;c3 13&nbsp; &nbsp; &nbsp;x&nbsp; &nbsp; &nbsp;y

人到中年有点甜

新流行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 = "\\|")&nbsp; ID left right1 11&nbsp; &nbsp; a&nbsp; &nbsp; &nbsp;b2 12&nbsp; &nbsp; b&nbsp; &nbsp; &nbsp;c3 13&nbsp; &nbsp; x&nbsp; &nbsp; &nbsp;y虽然在这种情况下,缺省值足够聪明,可以工作(它查找要拆分的非字母数字字符)。separate(data = df, col = FOO, into = c("left", "right"))
随时随地看视频慕课网APP
我要回答