gpt4 book ai didi

r - 如何从 R 输出创建数据框

转载 作者:行者123 更新时间:2023-12-04 00:54:09 26 4
gpt4 key购买 nike

我正在尝试根据多个操作的输出创建一个数据集。但我不知道如何使它自动化。复制功能会很好,但要执行多个操作才能获得单个新数据点,即调整后的 R 平方和 F 统计量。

R代码:

#make dataframe with random data
A<-as.integer(round(runif(20, min=1, max=10)))
dim(A) <- c(10,2)
A<-as.data.frame(A)
#extract F-statistic
summary(lm(formula=V1~V2,data=A))$fstatistic[1]
#extract adjusted R squared
summary(lm(formula=V1~V2,data=A))$adj.r.squared
#repeat 100 times and make a dataframe of the unique extracted output, e.g. 2 columns 100 rows
??????????????

最佳答案

在 5 个数据帧上应用线性模型...

使用replicate,它会是这样的

> replicate(5, {
A <- data.frame(rnorm(5), rexp(5))
m <- lm(formula = A[,1] ~ A[,2], data = A)
c(f = summary(m)$fstatistic[1], adjR = summary(m)$adj.r.squared)
})
## [,1] [,2] [,3] [,4] [,5]
## f.value 0.4337426 1.3524681 1.17570087 3.8537837 0.04583862
## adjR -0.1649097 0.0809812 0.04207698 0.4163808 -0.31326721

您可以用 t() 包装它以获得长格式矩阵。

您还可以使用广受欢迎的 do.call(rbind, lapply(...)) 方法,

> do.call(rbind, lapply(seq(5), function(x){
A <- data.frame(rnorm(5), rexp(5))
m <- lm(formula = A[,1] ~ A[,2], data = A)
c(f = summary(m)$fstatistic[1], adjR = summary(m)$adj.r.squared)
}))
## f.value adjR
## [1,] 1.9820243 0.19711351
## [2,] 21.6698543 0.83785879
## [3,] 4.4484639 0.46297652
## [4,] 0.9084373 -0.02342693
## [5,] 0.0388510 -0.31628698

你也可以使用sapply,

> sapply(seq(5), function(x){
A <- data.frame(rnorm(5), rexp(5))
m <- lm(formula = A[,1] ~ A[,2], data = A)
c(f = summary(m)$fstatistic[1], adjR = summary(m)$adj.r.squared)
})
## [,1] [,2] [,3] [,4] [,5]
## f.value 0.07245221 0.2076504 0.0003488657 58.5524139 0.92170453
## adjR -0.30189169 -0.2470187 -0.3331783000 0.9350147 -0.01996465

请记住,这些都返回一个矩阵,因此如果您想要一个data.frame<,一个as.data.frame包装器可能是合适的 结果。

关于r - 如何从 R 输出创建数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23532539/

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