方括号时拆分数据框列

时间:2017-04-07 15:21:48

标签: r dataframe split separator tidyr

我有一个带有一些模型估计的数据框。根据观察结果,估计只有一个值或一个值以及方括号之间的置信区间。顺便说一句,变量是一个字符(我想我需要改变一些时间)

df<-data.frame(c("5","3","8 [3 - 5]")

我想将此数据框列(x)拆分为两列。第一个用于估计值(y),第二个用于带有或不带括号(z)的置信区间。

我尝试过tidyr :: separate和tidyr :: split(我对dplyr家族非常有趣:-),但我没有得到希望的结果。

tidyr::separate(col=x,into=c("y","z"),sep="//[")

你知道我做错了吗?

2 个答案:

答案 0 :(得分:1)

可以使用extract

完成此操作
library(tidyr)
extract(df, x, into = c("y", "z"), "(\\d+)\\s*(.*)")

或使用extra

中的separate参数
separate(df, x, into = c("y", "z"), "\\s+", extra = "merge")

数据

df <- data.frame(x= c("5","3","8 [3 - 5]"))

答案 1 :(得分:0)

这里你去:

library("stringr")
df <- data.frame(c("5", "3", "8 [3 - 5]")) 
df2 = str_split_fixed(string = df[,1], pattern = "\\[", n = 2)               
df2[,2] = gsub(pattern = "\\]", replacement = "", x = df2[,2])