全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
7303 8
2014-10-25
求助:
   如何在R中把function的返回值用data.frame输出(因为有多个类型不同的输出值)?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2014-10-25 18:51:46
用list输出
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-10-25 19:59:43
qoiqpwqr 发表于 2014-10-25 18:51
用list输出
感谢回复!
    1. list输出的形式不是我所想要的
    2.list输出到csv里面时会报错

不知如何解决??
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-10-25 20:00:39
附上代码:

reg_diag <- function(fm){
  n <- nrow(fm$model)      #rawdata
  df <- fm$df.residual     #df_of_residual
  p <- n-df-1
  s <- rep(" ",n)          #!
  res <- residuals(fm)
  s1 <- s
  s1[abs(res)==max(abs(res))] <- "*"
  sta <- rstandard(fm)
  s2 <- s
  s2[abs(sta)>2] <- "*"
  stu <- rstudent(fm)
  s3 <- s
  s3[abs(stu)>2] <- "*"
  h <- hatvalues(fm)
  s4 <- s
  s4[h>2*(p+1)/n] <- "*"
  d <- dffits(fm)
  s5 <- s
  s5[d>2*sqrt((p+1)/n)] <- "*"
  c <- cooks.distance(fm)
  s6 <- s
  s6[c==max(c)] <- "*"
  co <- covratio(fm)
  s7 <- s
  s7[co=max(abs(co-1))] <- "*"
  res <- list(residual=res,s1,standardedresidual=sta,s2,
             studentedresidual=stu,s3,hat_matrix=hat,s4,
             DFFITS=d,s5,cooks_distance=c,s6,
             COVRATIO=co,s7)
  write.csv("C:\\Users\\Administrator\\Desktop\\result.csv",res,col.names=T)
}

intellect <- data.frame(
  x <- c(15,26,10,9 ,15 ,20,18,11 ,8  ,20,7  ,9 ,10,11,11 ,10 ,12 ,42,17 ,11,10),
  y <- c(95,71,83,91,102,87,93,100,104,94,113,96,83,84,102,100,105,57,121,86,100)
)

lm.sol <- lm(y~x,data=intellect)

reg_diag(lm.sol)
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-10-25 20:02:49
前两行复制时有些不清晰:

n <- nrow(fm$model)   
  df <- fm$df.residual   
  p <- n-df-1
  s <- rep(" ",n)         
  res <- residuals(fm)
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-10-25 20:21:56
用cbind处理一下,输出的结果是想要的了(如附件截图)
但是输出到csv的问题还是没有解决

望大家指点!
附件列表
捕获.PNG

原图尺寸 63.76 KB

捕获.PNG

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群