楼主: amdyxsls
16739 7

[问答] 请问,r软件如何批量导出summary结果中的P值? [推广有奖]

  • 1关注
  • 3粉丝

已卖:126份资源

博士生

67%

还不是VIP/贵宾

-

威望
0
论坛币
183 个
通用积分
0.9700
学术水平
1 点
热心指数
2 点
信用等级
0 点
经验
3205 点
帖子
74
精华
0
在线时间
553 小时
注册时间
2012-5-18
最后登录
2022-10-30

楼主
amdyxsls 学生认证  发表于 2013-11-25 18:45:00 |AI写论文
20论坛币
一共16个因素x1~x16,分别对y进行一元回归,r1=lm(y~x1);r2=lm(y~x2);……r16=lm(y~x16);
然后summary(r1);summary(r2);……summary(r16);
r程序运行结果是16个格式如下的结果
> summary(r13);
Call:
lm(formula = y ~ x13)
Residuals:
    Min      1Q  Median      3Q     Max
-42.416 -10.935  -4.618  12.309  82.417
Coefficients:
            Estimate Std. Error t value Pr(>|t|)  
(Intercept)   25.163     14.010   1.796   0.0862 .
x13           -4.780      3.202  -1.493   0.1497  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 28.65 on 22 degrees of freedom
Multiple R-squared: 0.09197,    Adjusted R-squared: 0.0507
F-statistic: 2.228 on 1 and 22 DF,  p-value: 0.1497

目标就是上面蓝色的数字P值0.1497
请问有没有一段程序能够直接得到16个P值,而不用一个个复制粘贴到excel中得到?
谢谢!

最佳答案

关键词:Summary Summa Mary Sum r软件 R软件 summary 批量 P值

沙发
qoiqpwqr 发表于 2013-11-25 18:45:01
pvalues <- rep(NA, 16)
for (i in 1:16) pvalues[i] <- summary(get(paste("r", i, sep = "")))$coefficients[2, 4]

藤椅
qoiqpwqr 发表于 2013-11-25 18:53:28
summary(r13)$coefficients[2, 4]

板凳
amdyxsls 学生认证  发表于 2013-11-25 19:04:06
qoiqpwqr 发表于 2013-11-25 18:53
summary(r13)$coefficients[2, 4]
多谢!
但是,能不能直接用一个向量a来表示这16个数字?
我试图这样写了一下:
a=NULL;
for(i in seq(1,16)){
a=summary(ri)$coefficients[2, 4];
}
但是 ri这种表示明显不对,请问应该怎样操作?
再谢!

报纸
amdyxsls 学生认证  发表于 2013-11-25 19:06:40
qoiqpwqr 发表于 2013-11-25 18:58
pvalues
哦!  这就ok啦!  谢谢啦!

地板
amdyxsls 学生认证  发表于 2013-11-25 19:38:18
qoiqpwqr 发表于 2013-11-25 18:45
pvalues
请问大神
tcl01<-scan("F:/tz/tcl01.txt");
a=matrix(tcl01,nrow=24,ncol=17,byrow=T)

x1=a[,1];
y=a[,2]*100;
x2=a[,3];
x3=a[,4];
x4=a[,5];
x5=a[,6];
x6=a[,7];
x7=a[,8];
x8=a[,9];
x9=a[,10];
x10=a[,11];
x11=a[,12];
x12=a[,13];
x13=a[,14];
x14=a[,15];
x15=a[,16];
x16=a[,17];

后面这段话怎么用循环来写?
就是说,怎么一次性定义x2~x16这15个变量?
我刚刚根据你给我的回复试图自己写,没写出来,谢谢!

7
qoiqpwqr 发表于 2013-11-25 20:48:03
  1. for (i in 1:16) assign(paste("x", i, sep = ""), a[, i+1])
  2. x1=a[,1];
  3. y=a[,2]*100;
复制代码

8
nkunku 发表于 2013-11-26 05:27:36
值得学习

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-17 15:41