R - 计数值之前的出现次数
R - Count Number of Occurrence Before Value
我有一个布尔变量向量(假设下面是一个名为 vectorA 的向量):
TRUE
FALSE
FALSE
TRUE
FALSE
我想计算每个 false 和 return 向量之前 false 出现的次数。对于上面的列表,向量看起来像:
0
1
2
2
3
如果我们将 TRUE/FALSE 转换为 0/1,这将与先验值相加相同。
的table
0
1
1
0
1
会return相同的向量:
0
1
2
2
3
我知道我可以使用 for 循环;像
for (i in 1:length(vectorA))
{if (i == 1)
{0}
elseif (vectorA[i])
{vectorA[i-1]}
else
{vectorA[i-1] + 1}
}
有没有不用 for 循环的方法?谢谢
这个怎么样:
set.seed(124)
x <- sample(c(TRUE,FALSE),12,replace=TRUE)
##
R> x
[1] TRUE TRUE FALSE TRUE TRUE TRUE FALSE TRUE FALSE TRUE FALSE FALSE
##
R> cumsum(!x)
[1] 0 0 1 1 1 1 2 2 3 3 4 5
使用您的示例向量,
R> y <- c(TRUE,FALSE,FALSE,TRUE,FALSE)
R> cumsum(!y)
[1] 0 1 2 2 3
我有一个布尔变量向量(假设下面是一个名为 vectorA 的向量):
TRUE
FALSE
FALSE
TRUE
FALSE
我想计算每个 false 和 return 向量之前 false 出现的次数。对于上面的列表,向量看起来像:
0
1
2
2
3
如果我们将 TRUE/FALSE 转换为 0/1,这将与先验值相加相同。
的table0
1
1
0
1
会return相同的向量:
0
1
2
2
3
我知道我可以使用 for 循环;像
for (i in 1:length(vectorA))
{if (i == 1)
{0}
elseif (vectorA[i])
{vectorA[i-1]}
else
{vectorA[i-1] + 1}
}
有没有不用 for 循环的方法?谢谢
这个怎么样:
set.seed(124)
x <- sample(c(TRUE,FALSE),12,replace=TRUE)
##
R> x
[1] TRUE TRUE FALSE TRUE TRUE TRUE FALSE TRUE FALSE TRUE FALSE FALSE
##
R> cumsum(!x)
[1] 0 0 1 1 1 1 2 2 3 3 4 5
使用您的示例向量,
R> y <- c(TRUE,FALSE,FALSE,TRUE,FALSE)
R> cumsum(!y)
[1] 0 1 2 2 3