我是世界的新手R
,并且有一个相当简单的问题,但这让我很困扰。
我有很多数字:
abc=rnorm(100, mean=0, sd=1)
我想知道这些数字中有多少是正数。我试过了:
length(which(abc>0)
但这没有用。有什么建议么?
我是世界的新手R
,并且有一个相当简单的问题,但这让我很困扰。
我有很多数字:
abc=rnorm(100, mean=0, sd=1)
我想知道这些数字中有多少是正数。我试过了:
length(which(abc>0)
但这没有用。有什么建议么?
你想要的是:
sum(abc > 0)
先试试abc > 0
。这将为您提供所有abc
正值的布尔向量 TRUE,两者abc
的长度和布尔向量相同。由于 TRUE 等于 1 并且 FALSE 等于 0,因此该向量的元素之和将为您提供所需的计数。这是 R 中的一个常见技巧,这就是为什么我觉得它可能是您的情况的答案。
另一个有用的技巧是做同样的事情,但使用mean
, 例如mean(abc > 0)
这会给你一个比例的值为abc
正的值。
您最初的方法也可以工作(提供正确的括号),但根据我的口味 which() 不是用于此类用途的功能。
另一种选择是在table
这里使用,给你正数和负数的数量:
table(abc > 0 )
FALSE TRUE
45 55
我认为这是你应该尝试的:
length(abc[abc>0])
在 R 中,一切都以矩阵的形式输入,这就是我们使用[]
而不是()
.