我想拆分一个字符串。
str <- "3 |6 | 9 | 12"
unlist(strsplit(str,split="|"))
[1] "3" " " "|" "6" " " "|" " " "9" " " "|" " " "1" "2"
如何获得结果“3 6 9 12”?
答案 0 :(得分:2)
我实际上会放弃strsplit
而只是使用scan
这样的事情......
> str <- "3 |6 | 9 | 12"
> str
[1] "3 |6 | 9 | 12"
> scan(text = str, sep = "|")
Read 4 items
[1] 3 6 9 12
答案 1 :(得分:1)
如果你想要一个包含所有四个子串的向量,你可以使用:
str <- "3 |6 | 9 | 12"
strsplit(str, " *\\| *")[[1]]
# [1] "3" "6" "9" "12"
此处," *"
表示任意数量的空格。
请注意,|
表示正则表达式中的或。你必须使用双重转义来进行文字解释,即\\|
。
答案 2 :(得分:0)
使用gsub
替换'|'通过“空”。 (使用“fixed = TRUE”,因此“|”是要按原样匹配的字符串,而不是regexp中使用的“|”
str <- "3 |6 | 9 | 12"
> gsub("|", "", str, fixed = TRUE)
[1] "3 6 9 12"