gpt4 book ai didi

r - 当 var() 应用于 R 中的数据框行时会发生什么?

转载 作者:行者123 更新时间:2023-12-02 07:40:52 26 4
gpt4 key购买 nike

新手 R 问题。不好意思问:我确定已经回答了,但显然这是一个很难搜索的问题。我已经阅读了 var(方差)的手册页,但我不明白。检查书籍、网页(好的,只有两本书)。我会等待有人指出我现有的答案....

> df
first second
1 1 3
2 2 5
3 3 7

> df[,2]
[1] 3 5 7

> var(df[,2])
[1] 4

好的,到目前为止,还不错。

> df[1,]
first second
1 1 3
> var(df[1,])
first second
first NA NA
second NA NA

嗯??

提前致谢。!

最佳答案

第一个问题是,当您从 data.frame 中选择一行时,您会得到不同类的对象,而不是当您选择一列时:

df = data.frame(first=c(1, 2, 3), second=c(3, 5, 7))

class(df[, 2])
[1] "integer"

class(df[1, ])
[1] "data.frame"

# But you can explicitly convert with as.integer.
var(as.integer(df[1, ]))
# [1] 2

第二个问题是 var() 对待 data.frame 的方式完全不同。它将每一列视为变量,并通过将每一列与其他每一列进行比较来计算方差和协方差矩阵:

# Create a data frame with some random data.
dat = data.frame(first=rnorm(20), second=rnorm(20), third=rnorm(20))

var(dat)
# first second third
# first 0.98363062 -0.2453755 0.04255154
# second -0.24537550 1.1177863 -0.16445768
# third 0.04255154 -0.1644577 0.58928970

var(dat$third)
# [1] 0.5892897

cov(dat$first, dat$second)
# [1] -0.2453755

关于r - 当 var() 应用于 R 中的数据框行时会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11270720/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com