【发布时间】:2015-03-04 08:31:42
【问题描述】:
我有一个布尔变量向量(假设下面是一个叫做vectorA的向量):
TRUE
FALSE
FALSE
TRUE
FALSE
我想在每个 false 之前计算 false 的出现次数并返回一个向量。对于上面的列表,向量看起来像:
0
1
2
2
3
如果我们将 TRUE/FALSE 转换为 0/1,这将与对先前值求和相同。表
0
1
1
0
1
将返回相同的向量:
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 循环的情况下做到这一点?谢谢
【问题讨论】:
标签: r performance for-loop vector