R中的逻辑运算 - 不同的结果

时间:2017-11-20 13:57:36

标签: r

我有一个数据框' dd' 753 x 3,所有变量都是数字类。

str(dd)
'data.frame':   753 obs. of  3 variables:
$ A: num  1.9 2 1.1 0.636 0.9 ...
$ B: num  1.1 0.222 0.6 0.364 0.8 ...
$ C: num  0 -0.8 -0.2 0 -0.2 -0.5 0.1 0 -0.9 0.1 ... 

我做了第一个变量的直方图并将其存储在变量中。

h1 <- hist(dd[, 1], breaks = 25, plot = F)
str(h1)
List of 6
$ breaks  : num [1:24] -0.3 -0.2 -0.1 0 0.1 0.2 0.3 0.4 0.5 0.6 ...
$ counts  : int [1:23] 5 3 5 9 20 25 36 43 45 51 ...
$ density : num [1:23] 0.0664 0.0398 0.0664 0.1195 0.2656 ...
$ mids    : num [1:23] -0.25 -0.15 -0.05 0.05 0.15 0.25 0.35 0.45 0.55 0.65  ...
$ xname   : chr "dd[, 1]"
$ equidist: logi TRUE
- attr(*, "class")= chr "histogram"

然后我确定密度&gt;的第一个和最后一个索引。 0.3并将相应的中断存储到变量中。

index <- which(h1$density > 0.3)
ll <- as.numeric(h1$breaks[index[1]])
ul <- as.numeric(h1$breaks[index[length(index)]])

ll的值为0.2,ul为1.6。当我试图找到第一个变量大于ul的观察数时,我得到105:

sum(dd[, 1] > ul)
[1] 105

但是,如果我这样做

sum(dd[, 1] > 1.6)
[1] 72

我正在努力了解这些结果(可能是一个微不足道的但我迷失了)。有人可以帮我理解差异吗?

0 个答案:

没有答案