R中的位置序列长度(以字符串形式给出)

时间:2015-04-27 20:58:44

标签: regex r count

我有一个地理位置序列列表。我列表中的每个元素都是以下形式:

> "[[1.2,2.2],[-1.12,3.45],[12.311,-1.34],[-12.32,33.333]]"

我希望能够得到序列的长度(上例中的4)。请你帮助我好吗?我试过使用正则表达式,但我无法成功。

提前谢谢!

3 个答案:

答案 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)

您可以使用:

\[[^[]

然后算上比赛。

Demo

在R:

> x <- "[[1.2,2.2],[-1.12,3.45],[12.311,-1.34],[-12.32,33.333]]"
> length(gregexpr("\\[[^\\[]",x)[[1]])
[1] 4