我有一个存储了10000个整数值的变量(Var)。
我想计算这个列表中出现1000或更高数字值的次数。
在R语言中有一行代码可以实现吗?
谢谢您提前。
sum(Var >= 1000)
可以实现目标,只要Var
是一个向量。如果不是,您需要告诉 R 在包含它的任何对象中查找Var
。以下是示例:
> set.seed(2)
> Var <- sample(900:1100, 10)
> Var
[1] 937 1040 1014 933 1085 1084 925 1061 990 1005
> Var >= 1000
[1] FALSE TRUE TRUE FALSE TRUE TRUE FALSE TRUE FALSE TRUE
> sum(Var >= 1000)
[1] 6
这是利用了 TRUE
等于 1,FALSE
等于 0 的事实。
sum(Var>=1000)
建议您阅读一些关于R语言的入门文档,这种情况经常出现。另外,希望您拥有的是“向量”而不是“列表”。如果它是一个“列表”,那么...呃,首先将其使用unlist()函数转换成向量。
>=
而不仅仅是 >
。 - Gavin Simpsonmean(Var>=1000)
是 sum(Var>=1000)/length(Var)
的巧妙简写。 - Ben Bolker> length(which(Var>=1000))
试试这个:
sum(r >= 1000)
r是一个向量。这样做的原因是当您尝试对一个布尔向量求和时,R会自动将TRUE/FALSE转换为值1和0。
也可以使用以下方法:
vec <- sample(1:10, 15, replace = TRUE)
table(vec > 2)
或者
length(vec[vec>2])