如何找到正数的数量

时间:2013-04-18 07:33:20

标签: r

我是R世界的新人,并且有一个相当简单的问题,但它让我很烦恼。

我有很多数字:

abc=rnorm(100, mean=0, sd=1)

我想知道这些数字中有多少是积极的。我试过了:

length(which(abc>0) 

但这不起作用。有什么建议吗?

3 个答案:

答案 0 :(得分:5)

你想要的是:

sum(abc > 0)

首先尝试abc > 0。这将为所有abc值为正,两个abc的长度和布尔向量相同的值提供一个布尔向量TRUE。由于TRUE等于1且FALSE等于0,因此该向量的元素总和将为您提供所需的计数。这是R中的一个常见技巧,这就是为什么我觉得它可能是你的答案。

另一个有用的技巧是使用mean做同样的事情,例如mean(abc > 0)这会在abc中为您提供比例的值为正数。

您的原始方法也适用(提供正确的包围),但根据我的口味,()不是用于此类用途的功能。

答案 1 :(得分:2)

另一种选择是在这里使用table,为您提供正数和负数:

table(abc > 0 )
FALSE  TRUE 
   45    55

答案 2 :(得分:0)

我认为这是你应该尝试的:

length(abc[abc>0])

在R中,所有内容都以矩阵的形式输入,这就是我们使用[]代替()的原因。