获得标准偏差的NA

时间:2018-10-26 12:27:44

标签: r

当我写这本书的时候就可以了

mean(b1temp[1, ])

但对于标准偏差,它返回NA

sd(b1temp[1, ])

NA

SO,我修改了该函数,但仍然返回NA

sd(b1temp[1, ], na.rm=FALSE)

NA

我的数据集仅包含一行。这是问题吗?

1 个答案:

答案 0 :(得分:0)

这里的问题是data.frame的不正确子集,因为当执行b1temp[1, ]时,您只会得到1编号,其中未定义标准偏差。这是获得NA的原因。

默认情况下,data.frame数据是按列而不是按行组织的。因此,要将sd应用于数据,您应该对bitemp[, 1]列使用子集。

请参见下面的代码和模拟

b1temp <- data.frame(x = 1:10)

b1temp[1, ]
# [1] 1

mean(b1temp[1, ])
# [1] 1

sd(b1temp[1, ])
# [1] NA

sd(1)
# [1] NA

b1temp[1, ]
# [1]  1  2  3  4  5  6  7  8  9 10

sd(b1temp[, 1])
# [1] 3.02765