我是R
世界的新人,并且有一个相当简单的问题,但它让我很烦恼。
我有很多数字:
abc=rnorm(100, mean=0, sd=1)
我想知道这些数字中有多少是积极的。我试过了:
length(which(abc>0)
但这不起作用。有什么建议吗?
答案 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中,所有内容都以矩阵的形式输入,这就是我们使用[]
代替()
的原因。