很抱歉问这个......这肯定是一个常见问题解答,这是一个愚蠢的问题,但它一直困扰着我。假设我想获取数据框中每个数字列的方差,例如
df <- data.frame(x=1:5,y=seq(1,50,10))
自然,我尝试
var(df)
而不是给我我希望的东西,就像
x y
2.5 250
我明白了
x y
x 2.5 25
y 25.0 250
它在对角线上有方差,在其他位置有协方差。当我查找 help(var) 并读到“var 只是 cov 的另一个接口”时,这是有道理的。当然,方差是变量与其自身之间的协方差。输出有点混乱,但我可以沿对角线读取,或者使用diag(var(df))
、sapply(df, var)
或或通过反复lapply(df, var)
调用and来生成方差。var
df$x
df$y
但为什么?方差是一种常规的、基本的描述性统计数据,仅次于均值。将它应用于数据框的列不应该是完全和完全微不足道的吗?当我只要求方差时,为什么要给我协方差?只是好奇。感谢您对此的任何评论。