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

R, parsing character into elements of vector

我正在使用 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)。 感谢您的帮助。

我们可以使用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))

您可以使用 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"