答案 0 :(得分:2)
您可以使用strsplit
分割^
,然后使用gsub
查找模式[*].[*]
并将结果放入data.frame
。
data.frame("Time Value"=
gsub("(\\[.*?\\]\\.\\[.*?\\]).*", "\\1", strsplit(x,"\\^")[[1]])
, check.names = FALSE)
# Time Value
#1 [Time].[Fiscal Year]
#2 [Time].[Fiscal Half Year]
#3 [Time].[Fiscal Quarter]
#4 [Time].[Month]
数据:
x <- "[Time].[Fiscal Year].&[2014]}^[Time].[Fiscal Half Year]^[Time].[Fiscal Quarter]^[Time].[Month]"
答案 1 :(得分:0)
也许代码可以满足您的需求。给定字符串s
如下
s <- "[Time].[Fiscal Year].&[2014]}^[Time].[Fiscal Half Year]^[Time].[Fiscal Quarter]^[Time].[Month]"
然后可以通过
形成数据帧r <- unlist(strsplit(s,"\\^"))
df <- data.frame("Time Value" = unlist(regmatches(r,gregexpr("\\[.*?\\]\\.\\[.*?\\]",r))),check.names = F)
如此
> df
Time Value
1 [Time].[Fiscal Year]
2 [Time].[Fiscal Half Year]
3 [Time].[Fiscal Quarter]
4 [Time].[Month]
答案 2 :(得分:0)
简单的Base R解决方案:
gsub( "\\.\\&.*", "", unlist(strsplit(x, "\\^")))
数据:
x <- "[Time].[Fiscal Year].&[2014]}^[Time].[Fiscal Half Year]^[Time].[Fiscal Quarter]^[Time].[Month]"