Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从R中的lm命令中提取表格摘要数据_R_Format_Extract_Lm - Fatal编程技术网

如何从R中的lm命令中提取表格摘要数据

如何从R中的lm命令中提取表格摘要数据,r,format,extract,lm,R,Format,Extract,Lm,我的数据结构如下: group_id, months_from_start, perc_total_downloads, experience_ratio 1 1 1.2 4 1 2 1.7 6 … 235 1 6.7 3 23

我的数据结构如下:

group_id, months_from_start, perc_total_downloads, experience_ratio
1             1                    1.2                4
1             2                    1.7                6
…
235           1                    6.7                3
235           2                   18                  8
…
大约有300个组,每个组都有70个左右的连续数据元素

我发布了以下脚本来估计每个组的二阶多项式

s.1<-lm(xts(s[s$group_id == 1,][,-2], order.by=as.Date(s[s$group_id == 1,][,2]))$perc_total_downloads ~ poly(xts(s[s$group_id == 1,][,-2], order.by=as.Date(s[s$group_id == 1,][,2]))$months_from_start, 2, raw=TRUE))
s.235<-lm(xts(s[s$group_id == 235,][,-2], order.by=as.Date(s[s$group_id == 235,][,2]))$perc_total_downloads ~ poly(xts(s[s$group_id == 235,][,-2], order.by=as.Date(s[s$group_id == 235,][,2]))$months_from_start, 2, raw=TRUE))
s.599<-lm(xts(s[s$group_id == 599,][,-2], order.by=as.Date(s[s$group_id == 599,][,2]))$perc_total_downloads ~ poly(xts(s[s$group_id == 599,][,-2], order.by=as.Date(s[s$group_id == 599,][,2]))$months_from_start, 2, raw=TRUE))
s.1111<-lm(xts(s[s$group_id == 1111,][,-2], order.by=as.Date(s[s$group_id == 1111,][,2]))$perc_total_downloads ~ poly(xts(s[s$group_id == 1111,][,-2], order.by=as.Date(s[s$group_id == 1111,][,2]))$months_from_start, 2, raw=TRUE))
s.1537<-lm(xts(s[s$group_id == 1537,][,-2], order.by=as.Date(s[s$group_id == 1537,][,2]))$perc_total_downloads ~ poly(xts(s[s$group_id == 1537,][,-2], order.by=as.Date(s[s$group_id == 1537,][,2]))$months_from_start, 2, raw=TRUE))
对我来说,使用传统的记谱法而不是科学的记谱法也很方便,但我想没有它我也能活下去

我有没有办法不用手工剪切和粘贴


谢谢--sw

摘要函数只返回一个R列表。比如说,

R> x = runif(10);y=runif(10)
R> m = lm(y ~ x)
您感兴趣的部分是第四个元素:

R> summary(m)[[4]]
            Estimate Std. Error t value Pr(>|t|)
(Intercept)  0.44041     0.1768  2.4911  0.03746
x           -0.05899     0.3143 -0.1877  0.85579
这只是一个矩阵


以上回答了你的问题,但你的代码让我想哭!特别是,请仔细阅读
循环和
plyr
包。例如,我怀疑最后两行几乎满足了您的所有要求:

##Load the package and create some data
library(plyr)
dd = data.frame(group_id = sample(1:3, 10, TRUE), x = runif(10), y=runif(10)) 

##Split up dd by group_id and do some regression
dd1 = ddply(dd, .(group_id), summarise, summary(lm(y ~ x))[[4]])

##Label the column names
colnames(dd1)[2:5] = c("Estimate"   "Std. Error" "t value"    "Pr(>|t|)")

初始化一个矩阵,并执行一个循环,其中包括c(summary(m)$coef[,'Estimate'],summary(m)$coef[,'Std.Error'])…等等,因为它的价值
coef(summary(m))
也将提取此信息,尽管@DWin之前已经评论过,访问器方法的名称有点不一致。。。它应该是
coefTable()
…我永远记不起访问器方法了。我发现对于简单的结构,一个接一个地浏览列表元素会更快。有用的元素通常位于顶部附近。顺便说一句,摘要(m)[[4]]不是一个数据帧,而是一个矩阵。尝试使用“$”访问它,您将感到失望。谢谢您的帮助。有没有一种方法可以将矩阵的行列成一行?
R> summary(m)[[4]]
            Estimate Std. Error t value Pr(>|t|)
(Intercept)  0.44041     0.1768  2.4911  0.03746
x           -0.05899     0.3143 -0.1877  0.85579
##Load the package and create some data
library(plyr)
dd = data.frame(group_id = sample(1:3, 10, TRUE), x = runif(10), y=runif(10)) 

##Split up dd by group_id and do some regression
dd1 = ddply(dd, .(group_id), summarise, summary(lm(y ~ x))[[4]])

##Label the column names
colnames(dd1)[2:5] = c("Estimate"   "Std. Error" "t value"    "Pr(>|t|)")