R 如何计算特定范围内的数字量

R 如何计算特定范围内的数字量,r,R,我在计算数字时仍然有问题 尝试查找第一行[-0.5,0.5]内的数字量,以及第二行相同范围外的数字量 我使用abc=rnorm(100,平均值=0,标准差=1)。所以我总共有100个数字,但范围内只有35个,范围外35个,加起来不等于100 length(abc[abc>=-0.5 & abc<=0.5]) [1] 35 length(abc[abc<-0.5 & abc>0.5]) [1] 35 length(abc[abc>=-0.5&abc=-0

我在计算数字时仍然有问题

尝试查找第一行[-0.5,0.5]内的数字量,以及第二行相同范围外的数字量

我使用abc=rnorm(100,平均值=0,标准差=1)。所以我总共有100个数字,但范围内只有35个,范围外35个,加起来不等于100

length(abc[abc>=-0.5 & abc<=0.5])
[1] 35

length(abc[abc<-0.5 & abc>0.5])
[1] 35
length(abc[abc>=-0.5&abc=-0.5&abc您的目标是:

R> set.seed(1)
R> abc = rnorm(100, mean=0, sd=1)
R> length(abc[abc >= -0.5 & abc <= 0.5])
[1] 41
R> length(abc[abc < -0.5 | abc > 0.5])
[1] 59
您已更改了
abc
!这是因为
0.5
。要避免此情况,请使用间距(如我的代码中所示)


作为一种快捷方式,您也可以这样做:

set.seed(1)
abc <- rnorm(100, mean=0, sd=1)
sum(abc>=-0.5 & abc<=0.5)
# [1] 41
sum(abc< -0.5 | abc>0.5)
# [1] 59
set.seed(1)
abc=-0.5和abc0.5)
# [1] 59

这是因为
sum
将TRUE视为1,将FALSE视为0。

或者通过
子集

set.seed(1)
abc <- rnorm(100, mean=0, sd=1)

length(subset(abc, abc >= (-0.5) & abc <= 0.5))
[1] 41
length(subset(abc, abc < (-0.5) | abc > 0.5))
[1] 59
set.seed(1)
abc=(-0.5)和abc(0.5))
[1] 59

当你想在这样的半径内和半径之外找到数字时,考虑绝对值是有帮助的,然后你只有一个比较来做:

length(abc[abs(abc)<=0.5])
[1] 41
length(abc[abs(abc)>0.5])
[1] 59

对这两个陷阱的极好解释
set.seed(1)
abc <- rnorm(100, mean=0, sd=1)
sum(abc>=-0.5 & abc<=0.5)
# [1] 41
sum(abc< -0.5 | abc>0.5)
# [1] 59
set.seed(1)
abc <- rnorm(100, mean=0, sd=1)

length(subset(abc, abc >= (-0.5) & abc <= 0.5))
[1] 41
length(subset(abc, abc < (-0.5) | abc > 0.5))
[1] 59
length(abc[abs(abc)<=0.5])
[1] 41
length(abc[abs(abc)>0.5])
[1] 59
table(cut(abs(abc),c(-Inf,0.5,Inf)))

  (-Inf,0.5] (0.5,Inf] 
       41        59