Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何在FALSE之前计算逻辑向量中的真值数_R_Logical Operators - Fatal编程技术网

R 如何在FALSE之前计算逻辑向量中的真值数

R 如何在FALSE之前计算逻辑向量中的真值数,r,logical-operators,R,Logical Operators,在尝试查找向量中TRUE值的数量时,我遇到了第一个。然而,这并不完全符合我的要求。我感兴趣的是在第一个FALSE之前找到向量中TRUE值的数量(如果有的话)。我有一个向量a,这里有一条捷径: sum(cumprod(a)) # [1] 3 其中,cumprod给出了一个累积乘积(在这种情况下为0和1);因此,它消除了第一个FALSE之后的所有TRUE,如中所示 cumprod(a) # [1] 1 1 1 0 0 0 使用下面的语句,我们可以很容易地得到结果 which.min(a)-1

在尝试查找向量中
TRUE
值的数量时,我遇到了第一个。然而,这并不完全符合我的要求。我感兴趣的是在第一个
FALSE
之前找到向量中
TRUE
值的数量(如果有的话)。我有一个向量
a,这里有一条捷径:

sum(cumprod(a))
# [1] 3
其中,
cumprod
给出了一个累积乘积(在这种情况下为0和1);因此,它消除了第一个
FALSE
之后的所有
TRUE
,如中所示

cumprod(a)
# [1] 1 1 1 0 0 0 

使用下面的语句,我们可以很容易地得到结果

which.min(a)-1

…与基于
cumprod()
的解决方案相比,在大向量上的速度要快一些。对于一个非常糟糕的示例,请比较以下两种解决方案:
a此方法不适用于仅包含
TRUE
值的向量。仅针对
TRUE、FALSE
OK组合工作,然后需要另一个
if()
检查。如果结果为
0
,则需要将其更改为
length(a)
。如果您需要多次或在非常大的数据上应用此方法,那么时机仍然会更好。如果您只需要将其作为一个方便的函数,那么基于
cumprod()
的单行解决方案可能会更快地键入/记住。并非总是!!这将仅适用于所有
TRUE
值,如果所有值都是
FALSE
,则在这种情况下也会返回
0
,并且不能将其更改为长度(a)