全部版块 我的主页
论坛 提问 悬赏 求职 新闻 读书 功能一区 经管百科 爱问频道
7285 4
2016-01-17
以下这段程序是《R语言实战》里第五章中出现的一段程序,用于计算书记对象的集中趋势和散布情况
mystats <- function(x, parametric=TRUE, print=FALSE) {
if (parametric) {
    center <- mean(x); spread <- sd(x)
  } else {
    center <- median(x); spread <- mad(x)
  }
  if   (print & parametric) {
    cat("Mean=", center, "\n", "SD=", spread, "\n")
  }   else  if (print & !parametric) {
    cat("Median=", center, "\n", "MAD=", spread, "\n")
  }
  result <- list(center=center, spread=spread)
  return(result)
}

请问下这段程序里第一行parametric=TRUE, print=FALSE是什么意思?

二维码

扫码加我 拉你入群

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

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

全部回复
2016-1-19 15:59:18
同问 而且在输入第二条语句的时候 y<-mystats(x,parametric=FALSE,print=TRUE) 报错 说找不到对象 center
二维码

扫码加我 拉你入群

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

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

2016-2-16 17:42:03
用参数法时,参数为真,parametric=TRUE,   print=FALSE 不输出到屏幕。后面作者不是用了非参数法吗,parametric=FALSE,   print=TRUE,就输出结果了。
二维码

扫码加我 拉你入群

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

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

2016-3-20 19:39:12
监狱的小单间 发表于 2016-1-19 15:59
同问 而且在输入第二条语句的时候 y
我想问你这个问题是怎么解决的
二维码

扫码加我 拉你入群

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

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

2018-1-29 14:40:20
常小靛 发表于 2016-3-20 19:39
我想问你这个问题是怎么解决的
这个问题是函数parametric没有被定义的原因。你help一下,这个函数是找不到的,所以条件语句里=TRUE就无法成立,第一个if都无法执行,所以找不到center。你可以自己试着改写成阉割版的运行一下。下面是我自己编写的例子(萌新勿喷):
> mystats<-function(x,print=FALSE){
+ if(print){
+ center<-mean(x);spread<-sd(x)
+ cat("mean=",center,"\n","sd=",spread,"\n")
+ }
+ result<-list(center=center,spread=spread)
+ return(result)
+ }
运行:
> set.seed(1234)
> x<-rnorm(500)
> y<-mystats(x,print=TRUE)
屏幕返回:
mean= 0.0018
sd= 1
另外,运行help(parametric),返回:
No documentation for ‘parametric’ in specified packages and libraries:
you could try ‘??parametric’
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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