R中的拆分文本字符串

时间:2017-02-06 21:12:27

标签: r string split text-mining

我在R中有超过5000个元素的大列表。元素的形式如下:

$`/home/ricardo/MultiClass/data//Execucao_PUBLICACAO_DECISAO_INTERLOCUTORIA_DETERMINACAO_DE_PAGAMENTO/1117.txt.V1 

[1] DATA DE DISPONIBILIZACAO DA PUBLICACAO PELA FONTE OFICIAL: 16/11/2016 Pag 4279 Decisao Processo N RTOrd-0122200-90.2006.5.15.0087  <truncated>`

我想将其转换为两列dataframe,其中:

c1       
The contents between $ and [1]

c2    
rest of the text

我该怎么做分裂?需要注意的是,$[1]之间的字符串数量可能会发生变化,字符$[ e ]可以显示在文本的其余部分。

提前致谢, 里卡多。

2 个答案:

答案 0 :(得分:1)

library(stringr)

string <- '$/home/ricardo/MultiClass/data//Execucao_PUBLICACAO_DECISAO_INTERLOCUTORIA_DETERMINACAO_DE_PAGAMENTO/1117.txt.V1 [1] DATA DE DISPONIBILIZACAO DA PUBLICACAO PELA FONTE OFICIAL: 16/11/2016 Pag 4279 Decisao Processo N RTOrd-0122200-90.2006.5.15.0087'

c1 <- str_match(string = string, pattern = "^\\$(.*) \\[1\\] (.*)")[,2]
c2 <- str_match(string = string, pattern = "^\\$(.*) \\[1\\] (.*)")[,3]

答案 1 :(得分:1)

$ ...文本是列表元素的名称,[1] ...是该元素的值。您可以提取这些(或者更好,在读取数据时正确分配它们)。

a <- list(`this is the name` = "data stored in that variable")

a
#> $`this is the name`
#> [1] "data stored in that variable"

names(a)
#> [1] "this is the name"

as.character(a)
#> [1] "data stored in that variable"