我有一个带有一些模型估计的数据框。根据观察结果,估计只有一个值或一个值以及方括号之间的置信区间。顺便说一句,变量是一个字符(我想我需要改变一些时间)
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="//[")
你知道我做错了吗?
答案 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])