当我写这本书的时候就可以了
mean(b1temp[1, ])
但对于标准偏差,它返回NA
sd(b1temp[1, ])
NA
SO,我修改了该函数,但仍然返回NA
sd(b1temp[1, ], na.rm=FALSE)
NA
我的数据集仅包含一行。这是问题吗?
答案 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