R,将字符解析为向量的元素

时间:2018-06-03 13:06:56

标签: r data-cleaning

我正在使用R,我有一列数据框,如下所示:

                                             TAGS
1                                     7:150641969
2                         7:150647969|7:150647970
3                         7:150647569|7:150648198
4 7:150645682|7:150648198|7:150650975|7:150652286

我需要在此列中提供一个向量,其中包含列中|分隔的每个值。它必须如下所示:

a<-c(7:150641969,7:150647969,7:150647970, 7:150647569,7:150648198,7:150645682,7:150648198,7:150650975,7:150652286)

我需要这个来检查列下面出现多少个唯一值(x:xxxxxxxxxxx)。 谢谢你的帮助。

2 个答案:

答案 0 :(得分:1)

我们可以使用strsplit

a <- unlist(strsplit(x = df$TAGS, split = "\\|"))
a
#[1] "7:150641969" "7:150647969" "7:150647970" "7:150647569" "7:150648198" "7:150645682" "7:150648198" "7:150650975" "7:150652286"

数据

df <- structure(list(TAGS = c("7:150641969", "7:150647969|7:150647970", 
"7:150647569|7:150648198", "7:150645682|7:150648198|7:150650975|7:150652286"
)), .Names = "TAGS", class = "data.frame", row.names = c(NA, 
-4L))

答案 1 :(得分:0)

您可以使用strsplit将字符串分隔为单个标记,然后使用unique查找明显的标记。

TAGS = c("7:150641969", "7:150647969|7:150647970",
    "7:150647569|7:150648198",
    "7:150645682|7:150648198|7:150650975|7:150652286")

AllTags = unlist(strsplit(TAGS, "\\|"))
unique(AllTags)
[1] "7:150641969" "7:150647969" "7:150647970" "7:150647569" "7:150648198" "7:150645682" "7:150650975"
[8] "7:150652286"