我有一个如下所示的因子向量:
[1] A
[2] B+C
[3] A+D+E
[4] F
...
我想要一个由“+”符号分隔的项目向量,即在上面的示例中,我想要一个向量A B C D E F
。删除“+”符号并删除项目的副本。我怎么能在R?谢谢!
答案 0 :(得分:5)
您应该使用strsplit
+
分割矢量(通过转义)。然后,您将获得一个列表,其中向量的每个元素在+
处被分割。然后你可以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"
答案 1 :(得分:5)
使用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"