0

我有这个数组:

[1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1
 [38] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
 [75] 1 1 2 1 2 2 1 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2
[112] 2 1 1 2 2 2 2 2 2 1 2 1 1 2 1 1 2 1 1 2 1 1 2 2 1 2 2 2 2 1 2 2 2 1 2 2 2

我想计算“1”和“2”的出现次数。从 [1] 到 [70] 和从 [71] 到结尾。

我试过了 :

sum(x==1)

但这适用于所有人。如何选择行?

4

1 回答 1

1

函数 sum {base} 应该返回其参数中存在的所有值的总和

您可以通过以下方式定义参数:使用 x[a:b] 您可以设置边界(例如 a=1 和 b=10,将区域从 [1] 设置为 [10]);使用运算符 == 您可以检查边界之间是否存在一个特定值 c ...例如: x[a:b]==c 如果您想查找多个值(例如 c & d ,其中c==1 和 d==2 ,你可以(例如)使用一个简单的加法来总结你的结果:

现在您可以说: sum(x[a:b]==c) + sum(x[a:b]==c) 其中 a&b 是您的边界,而 c&d 是您要比较的值。

于 2015-04-27T13:42:48.697 回答