方括号时拆分数据框列
Split data frame column when square brackets
我有一个包含一些模型估计的数据框。根据观察结果,估计只有一个值或一个值加上方括号之间的置信区间。顺便说一句,变量是一个字符(我想我需要在某个时候改变它)
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="//[")
你知道我做错了什么吗?
这可以通过 extract
来完成
library(tidyr)
extract(df, x, into = c("y", "z"), "(\d+)\s*(.*)")
或在separate
中使用extra
参数
separate(df, x, into = c("y", "z"), "\s+", extra = "merge")
数据
df <- data.frame(x= c("5","3","8 [3 - 5]"))
给你:
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])
我有一个包含一些模型估计的数据框。根据观察结果,估计只有一个值或一个值加上方括号之间的置信区间。顺便说一句,变量是一个字符(我想我需要在某个时候改变它)
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="//[")
你知道我做错了什么吗?
这可以通过 extract
library(tidyr)
extract(df, x, into = c("y", "z"), "(\d+)\s*(.*)")
或在separate
extra
参数
separate(df, x, into = c("y", "z"), "\s+", extra = "merge")
数据
df <- data.frame(x= c("5","3","8 [3 - 5]"))
给你:
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])