数据帧中分隔符处的分隔列我想根据分隔符将一个列分割成两个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
人到中年有点甜
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"))
- 3 回答
- 0 关注
- 587 浏览
添加回答
举报
0/150
提交
取消