我有一个看起来像这样的因子向量:
[1] A
[2] B+C
[3] A+D+E
[4] F
...
我想要一个由“+”号分隔的项目向量,即在上面的示例中,我想要一个向量A B C D E F
。“+”号被删除,项目的重复项也被删除。我怎么能在 R 中做到这一点?谢谢!
我有一个看起来像这样的因子向量:
[1] A
[2] B+C
[3] A+D+E
[4] F
...
我想要一个由“+”号分隔的项目向量,即在上面的示例中,我想要一个向量A B C D E F
。“+”号被删除,项目的重复项也被删除。我怎么能在 R 中做到这一点?谢谢!
strsplit
您应该使用at拆分向量+
(通过转义它)。然后,您将获得一个列表,其中向量的每个元素在 处拆分+
。然后你可以unlist
它来取回向量。从那里您可以调用unique
以删除重复项。
x <- c("A", "B+C", "B+D", "A+D+E", "F", "F+C")
unique(unlist(strsplit(x, "\\+")))
# [1] "A" "B" "C" "D" "E" "F"
使用另一个选项scan
,您将获得一个字母向量,您可以使用以下方法删除重复的字母unique
:
unique(scan(text='A
B+C
A+D+E
F',what='character',sep='+'))
Read 7 items
[1] "A" "B" "C" "D" "E" "F"