我有一个地理位置序列列表。我列表中的每个元素都是以下形式:
> "[[1.2,2.2],[-1.12,3.45],[12.311,-1.34],[-12.32,33.333]]"
我希望能够得到序列的长度(上例中的4)。请你帮助我好吗?我试过使用正则表达式,但我无法成功。
提前谢谢!
答案 0 :(得分:1)
正如评论中提到的一些人所说,您可以计算特定字符在序列中出现的次数。这假设数据形成良好且一致。例如:
library(stringr)
x <- "[[1.2,2.2],[-1.12,3.45],[12.311,-1.34],[-12.32,33.333]]"
str_count(x, "\\[") - 1 #subtract 1 since there are two opening [
的产率:
> str_count(x, "\\[") - 1
[1] 4
答案 1 :(得分:1)
如果您不想加载库
str <- "[[1.2,2.2],[-1.12,3.45],[12.311,-1.34],[-12.32,33.333]]"
nchar(str)-nchar(gsub("\\]", "", str))-1
答案 2 :(得分:0)
您可以使用:
\[[^[]
然后算上比赛。
在R:
> x <- "[[1.2,2.2],[-1.12,3.45],[12.311,-1.34],[-12.32,33.333]]"
> length(gregexpr("\\[[^\\[]",x)[[1]])
[1] 4