小编Jas*_*n B的帖子

中位数()的奇怪行为?

median()函数应用于数据帧时,我注意到一些不一致的行为."行为不一致"通常意味着我不理解某些事情,所以我希望有人愿意为我解决这个问题.

我知道一些功能(例如,min(),max())转换数据帧到载体和用于在整个DF返回对应的值mean()sd()对于每列返回一个值.虽然有点令人困惑,但这些行为上的差异不会引起很多问题,因为如果返回标量而不是向量,大多数代码都会中断.但是,median()似乎不一致.例如:

dat <- data.frame(x=1:100, y=2:101)
median(dat)
Run Code Online (Sandbox Code Playgroud)

返回一个向量:[1] 50.5 51.5

但是,有时会打破:

dat2 <- data.frame(x=1:100, y=rnorm(100))
median(dat2)
Run Code Online (Sandbox Code Playgroud)

返回: [1] NA NA Warning messages: 1: In mean.default(X[[1L]], ...) : argument is not numeric or logical: returning NA 2: In mean.default(X[[2L]], ...) : argument is not numeric or logical: returning NA

然而,median(dat2$x)median(dat2$y)这两个产生正确的结果.

还要考虑以下事项:

dat3 <- data.frame(x=1:100, y=1:100)
dat4 <- data.frame(x=1:100, y=100:199)
Run Code Online (Sandbox Code Playgroud)

在上面,median(dat3)返回[1] 50.5 …

r

10
推荐指数
2
解决办法
2173
查看次数

标签 统计

r ×1