获取摘要对象的行

时间:2015-11-19 19:16:43

标签: r apply

我正在尝试获取估算值和标准值的数值。错误的摘要对象,但我在应用中访问错误的行(我认为)。我该如何解决这个问题?

require(MASS)
colnames(Cars93)
ll<-lm(Fuel.tank.capacity~Length*Passengers,data=Cars93)
s<-summary(ll)$coeff
apply(s,1,function(x){
  paste(x[1]+3,x[2]+3) #trying to return intercept and length for each row
  })

目标:

-8.18 17.93
 0.11 0.09
.....

3 个答案:

答案 0 :(得分:3)

对象的'是矩阵

  

is.matrix(S)

[1] TRUE

因此,您可以通过以下方式从此对象中提取拦截和标准错误:

s[,1:2]

                    Estimate  Std. Error
(Intercept)       -8.180069747 17.93108069
Length             0.119717136  0.09943864
Passengers        -0.008363972  3.55247973
Length:Passengers  0.003146143  0.01941267

答案 1 :(得分:1)

以下代码应该可以满足您的需求:

t(apply(s,1,function(x){
  c(x[1],x[2])
}))


                     Estimate  Std. Error
(Intercept)       -8.180069747 17.93108069
Length             0.119717136  0.09943864
Passengers        -0.008363972  3.55247973
Length:Passengers  0.003146143  0.01941267

答案 2 :(得分:0)

以下代码返回包含Estimate,空格和截距的(命名)字符串列表:

> apply(s[,c(1,2)],1,paste,collapse = " ")
                            (Intercept)                                  Length 
   "-8.18006974657324 17.9310806930227"  "0.119717136183204 0.0994386410426733" 
                             Passengers                       Length:Passengers 
"-0.00836397172098245 3.55247972849905" "0.00314614268107023 0.019412665227971" 

这不是您要求的,因为它仍然是一个命名向量,但您可以根据需要使用另一个paste(collapse="\n")将其余部分粘贴在一起。请注意,字符串中的\n是回车符,但在解释器中显示时它只是打印为\ n。