《统计建模与R软件》薛毅原书课后习题答案

更新时间:2023-06-25 02:36:46 阅读: 评论:0

第二章答案:
x<-c(1,2,3)
y<-c(4,5,6)
e<-c(1,1,1)
植物生理学z=2*x+y+e
偏僻的意思z1=crossprod(x,y)#z1为x1与x2的内积 或者 x%*%y
z2=tcrossprod(x,y)#z1为x1与x2的外积 或者 x%o%y
z;z1;z2
要点:基本的列表赋值方法,内积和外积概念。内积为标量,外积为矩阵。
A<-matrix(1:20,c(4,5));A
B<-matrix(1:20,nrow=4,byrow=TRUE);Byuin
C=A+B;C
#不存在AB这种写法
E=A*B;E
F<-A[1:3,1:3];F
H<-matrix(c(1,2,4,5),nrow=1);H
#H起过渡作用,不规则的数组下标
G<-B[,H];G
要点:矩阵赋值方法。默认是byrow=FALSE,数据按列放置。
teenager什么意思
      取出部分数据的方法。可以用数组作为数组的下标取出数组元素。dauntless
x<-c(rep(1,times=5),rep(2,times=3),rep(3,times=4),rep(4,times=2));x #或者省略times=,如下面的形式
x<-c(rep(1,5),rep(2,3),rep(3,4),rep(4,2));x
要点:rep()的使用方法。rep(a,b)即将a重复b次
n <- 5; H<-array(0,dim=c(n,n))
for (i in 1:n){for (j in 1:n){H[i,j]<-1/(i+j-1)}};H
G <- solve(H);G #求H的逆矩阵
ev <- eigen(H);ev #求H的特征值和特征向量
要点:数组初始化;for循环的使用
待解决:如何将很长的命令(如for循环)用几行打出来再执行?每次想换行的时候一按回车就执行了还没打完的命令...
StudentData<-data.frame(name=c("zhangsan","lisi","wangwu","zhaoliu","dingyi"),x=c("F","M","F","M","F"),age=c("14","15","16","14","15"),height=c("156","165","157","162","159"),weight=c("42","49","41.5","52","45.5"));StudentData儿歌mp3下载
要点:数据框的使用
待解决:SSH登陆linux服务器中文显示乱码。此处用英文代替。
write.table(StudentData,file="")
#把数据框StudentData在工作目录里输出,输出的文件名为
StudentData_a<-read.table("");StudentData_a
#以数据框的形式读取文档,存入数据框StudentData_a中。
广州包装设计
write.csv(StudentData_a,"studentdata.csv")
#把数据框StudentData_a在工作目录里输出,输出的文件名为studentdata.csv,可用Excel打开.
要点:读写文件。read.table("file")
                write.table(Rdata,"file")
                read.csv("file")
                write.csv(Rdata,"file")
      外部文件,不论是待读入或是要写出的,命令中都得加双引号。
Fun<-function(n){
if(n <= 0)
list(fail="plea input a integer above 0!")
el{
repeat{
  if(n==1) break
  el if(n%%2==0){n<-n/2}
  el n<- 3*n+1
mrs是什么意思
}
list("sucess!")
}
}
在linux下新建一个R文件,输入上述代码,保存为"2.7.R"
然后在当前目录下进入R环境,输入source("2.7.R"),即打开了这个程序脚本。
然后就可以执行函数了。
输入Fun(67),显示
"sucess!"
输入Fun(-1),显示
$fail
[1] "plea input a integer above 0!"
待解决:source("*.R")是可以理解为载入这个R文件吧?如何在R环境下关闭R文件呢?
OK,自己写的第一个R程序~~
新建txt文件如下:
编写一个函数(程序名为)描述样本的各种描述性统计量。
data_outline<-function(x){
n<-length(x)
m<-mean(x)
v<-var(x)
s<-sd(x)
me<-median(x)
cv<-100*s/m
css<-sum((x-m)^2)
uss<-sum(x^2)
R <- max(x)-min(x)
R1 <-quantile(x,3/4)-quantile(x,1/4)
sm <-s/sqrt(n)
四级语法g1 <-n/((n-1)*(n-2))*sum((x-m)^3)/s^3
g2 <-((n*(n+1))/((n-1)*(n-2)*(n-3))*sum((x-m)^4)/s^4-(3*(n-1)^2)/((n-2)*(n-3)))
data.frame(N=n,Mean=m,Var=v,std_dev=s,Median=me,std_mean=sm,CV=cv,CSS=css,USS=uss,R=R,R1=R1,Skewness=g1,Kurtosis=g2,row.names=1)
}
进入R,
提意见source("data_outline.R") #将程序调入内存
rumdata<-scan("");rumdata #将数据读入向量rumdata。
data_outline(rumdata)
结果如下:
    N  Mean      Var  std_dev Median  std_mean      CV      CSS      USS  R
1 100 73.696 15.41675 3.926417  73.5 0.3926417 5.327857 1526.258 544636.3 20
  R1  Skewness  Kurtosis
要点:read.table()用于读表格形式的文件。上述形式的数据由于第七行缺几个数据,故用read.table()不能读入。 scan()可以直接读纯文本文件。scan()和matrix()连用还可以将数据存放成矩阵形式。    X<-matrix(scan("",0),ncol=10,byrow=TRUE)  #将上述数据放置成10*10的矩阵。
scan()还可以从屏幕上直接输入数据。
  Y<-scan()
  然后按提示输入即可。结束输入时按回车即可。
>hist(rumdata,freq=FALSE,col="purple",border="red",density=3,angle=60,main=paste("the histogram of rumdata"),xlab="age",ylab="frequency")#直方图。col是填充颜色。 默认空白。border是边框的颜色,默认前景色。density是在图上画条纹阴影,默认不画。angle是条纹阴影的倾斜角度(逆时针方向),默认45度。main, xlab, ylab是 标题,x和y坐标轴名称。
>lines(density(rumdata),col="blue")#密度估计曲线。
>x<-64:85
> lines(x,dnorm(x,mean(rumdata),sd(rumdata)),col="green")  #正态分布的概率密度曲线
> plot(ecdf(rumdata),verticals=TRUE,do.p=FALSE) #绘制经验分布图
> lines(x,pnorm(x,mean(rumdata),sd(rumdata)),col="blue") #正态经验分布
> qqnorm(rumdata,col="purple") #绘制QQ图
> qqline(rumdata,col="red") #绘制QQ直线
> stem(rumdata,scale=1) #作茎叶图。原始数据小数点后数值四舍五入。
  The decimal point is at the |
  64 | 300
  66 | 23333
  68 | 00888777
  70 | 34444442222
  72 | 0000000777777755555555555
  74 | 033333333700000004688888
  76 | 5555555226
  78 | 0888555
  80 | 355266
  82 |
  84 | 3
>boxplot(rumdata,col="lightblue",notch=T) #作箱线图。notch表示带有缺口。
> fivenum(rumdata) #五数总结
> st(rumdata) #正态性Shapori-Wilk检验方法
        Shapiro-Wilk normality test
data:  rumdata
结论:p值,可认为来自正态分布的总体。
> ks.test(rumdata,"pnorm",mean(rumdata),sd(rumdata)) #Kolmogrov-Smirnov检验,正态性
        One-sample Kolmogorov-Smirnov test
data:  rumdata
alternative hypothesis: two-sided
Warning message:
st(rumdata, "pnorm", mean(rumdata), sd(rumdata)) :
  cannot compute correct p-values with ties
结论:p值,可认为来自正态分布的总体。

本文发布于:2023-06-25 02:36:46,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/90/156675.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数据   输入   文件   数组   程序   默认   方法
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图