问题
我想找到一个列表的长度。
预期输出
我想根据条件找到长度。
示例
假设我有以下四个元素的列表:
myve <–list(1,2,3,0)
这里我有4个元素,其中之一是零。如何通过提取零值来找到长度?然后,如果长度为> 1
,我想构造一个。那就是:
如果长度为4
,那么我想拥有4-1=3
。因此,输出应为3
。
注意
请注意,我正在处理一个零值可能从一种情况更改为另一种情况的问题。例如,对于第一个列表,我可能只有一个0值,而对于第二个列表,我可能只有2或3个零值。
值始终为正或零。
答案 0 :(得分:2)
您只需要将条件应用于每个元素。这将产生一个布尔值列表,然后对其求和以获取True
个元素的数量(即验证您的条件)。
在您的情况下:
sum(myve != 0)
在更复杂的情况下,通过函数f
来表达配置:
sapply(myve, f)
答案 1 :(得分:0)
使用sapply提取与零不同的那些并求和计数
sum(sapply(myve, function(x) x!=0))