统计建模与R软件习题二答案

# 习题2
# 2.1
x=c(1,2,3)
y=c(4,5,6)
e=c(rep(1,3))
z=2*x+y+e;z
x%*%y # 若x,y如答案那样定义为矩阵,则不能用%*%,因为,维数不对应,
x%o%y 

# 答案
x<-matrix(1:3,nrow=3)
y<-matrix(4:6,nrow=3)
e<-matrix(c(1,1,1),nrow=3)
z<-2*x+y+e;z
crossprod(x,y)#内积
outer(x,y)#外积

# 2.2
A=matrix(1:20,4,5);A
B=matrix(1:20,4,5,byrow=T);B
C=A+B;C
D=crossprod(A,B);D# D=A%*%B;D 错误 维数不对应,题目有错,本来就不可能AB
E=A*B;E
F=A[1:3,1:3];F
G=B[,c(1,2,4,5)];G # G<-B[1:4,-3];G 注意-3的用法

# 答案
A<-matrix(1:20,nrow=4)
B<-matrix(1:20,nrow=4,byrow=T)
C<-A+B;C
#D<-AB#不存在AB这种写法
E<-A*B;E
F<-A[1:3,1:3];F
G<-B[1:4,-3];G

# 2.3
x=c(rep(1,5),rep(2,3),rep(3,4),rep(4,2));x
#答案同上

# 2.4
Hilbert=function(n=5){
  H=matrix(0,nrow=n,ncol=n)
  for (i in 1:n){
    for (j in 1:n)
      H[i,j]=1/(i+j-1)
  }
  H # 返回值,
  list(Hmatrix=H,det=det(H),sol=solve(H),eig=eigen(H)) # 多元返回值
}
H=Hilbert(5);H
det(H)
solve(H)
eigen(H)

# 学会了function,对上述进行以下修改
funcH=function(n=5) {
	H=matrix(0,n,n)
	for (i in 1:n) {
		for (j in 1:n) {
			H[i,j]=1/(i+j-1)
		}

	}
	H # 返回值,输入H
	# list(Hmatrix=H,det=det(H),sol=solve(H),eig=eigen(H))
	# 也可以以列表形式输出多个返回值,同时能给每个元素定义元素名
	# 如 list(Hilbert=H)
  list(Hilbert=H)
}
funcH()

#2.4答案 5价Hilbert矩阵
n<-5
x<-array(0,dim=c(n,n))
for(i in 1:n){
  for(j in 1:n){
    x[i,j]<-1/(i+j-1)
  }
}
x
det(x)#矩阵行列式
solve(x)#逆矩阵
eigen(x)#特征值与特征向量

# 2.5 data.frame()
studentdata=data.frame(‘姓名‘=c(‘张三‘,‘李四‘,‘王五‘,‘赵六‘,‘丁一‘),
                       ‘性别‘=c(‘女‘,‘男‘,‘女‘,‘男‘,‘女‘),‘年龄‘=c(14,15,16,14,15),
                       ‘身高‘=c(156,165,157,162,159),‘体重‘=c(42,49,41.5,52,45.5))
#studentdata=data.frame(‘序号‘=1:5,‘姓名‘=c(‘张三‘,‘李四‘,‘王五‘,‘赵六‘,‘丁一‘),
#                       ‘性别‘=c(‘女‘,‘男‘,‘女‘,‘男‘,‘女‘),‘年龄‘=c(14,15,16,14,15),
#                       ‘身高‘=c(156,165,157,162,159),‘体重‘=c(42,49,41.5,52,45.5))
# 不需要输入序号。
write.table(studentdata,‘Re2.5.txt‘)

# 答案
student<-data.frame(name=c("zhangsan","lisi","wangwu","zhaoliu","dingyi"),
                    sex=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"))

# 2.6
st=read.table(‘Re2.5.txt‘,header=T)
write.csv(st,‘Re2.5.csv‘)

#2.6 答案
student1<-write.table(student,file="student1.txt")
student2<-read.table("student1.txt",head=T)
student3<-write.csv(student2,file="student3.csv")

# 2.7
func=function(n) {
  if (n<=0) "要求输入一个正整数"
  else {
    while(n!=1) {
      if (n%%2==0) n=n/2
      else n=3*n+1}
    "运算成功"
  }
} # R中定义的函数,没有专门的返回值设置,只相当于代码复制粘贴,
func(8) #返回值为代码的输出值

# 答案
#2.7
func<-function(n){
  if(n<=0) list("要求输入一个正整数")
  else{
    repeat{
      if(n==1) break
      else if(n%%2==0){n<-n/2}
      else n<-3*n+1}
    list("运算成功")
  }
}
时间: 2024-10-04 00:43:40

统计建模与R软件习题二答案的相关文章

R统计建模与R软件

教材目录 第一章 概率统计的基本知识 第二章 R软件的使用 第三章 数据描述性分析 第四章 参数估计 第五章 假设检验 第六章 回归分析 第七章 方差分析 第八章 应用多元分析(I) 第九章 应用多元分析(II) 第十章 计算机模拟 第一章 概率统计的基本知识   第二章 R软件的使用 2.1 求均值和方差 > X1 <- c(35,40,40,42,37,45,43,37,44,42,41,39) > mean(X1) [1] 40.41667 > sd(X1) [1] 3.02

统计建模与R软件第二章习题答案

# 2.1 x <- c(1,2,3);y <- c(4,5,6) e <- c(1,1,1) #1) z <- 2*x+y+e;z #2) crossprod(x,y) #3) outer(x,y) #2.2 #按列输入(默认) A <- matrix(1:20,c(4,5)) #按行输入 B <- matrix(1:20,c(4,5),byrow = TRUE) #1) C <- A+B;C #2) D <- A*B;D #3) #4) A[1:3,1:

《C++编程思想》(第二版)第2章 C++中的C(笔记、习题及答案)(一)

一.总结本章的内容: 1.如果声明指针是void* ,它意味着任何类型的地址都可以间接引用那个指针(而如果声明int*,则只能对int型变量的地址间接引用那个指针).一旦我们间接引用一个void*,就会丢失关于类型的信息.这意味着在使用前,必须转换为正确的类型. 2.Static变量使得局部变量的值在程序的整个生命期里仍然存在,其优点是在函数范围之外它是不可用的,所以不可能被轻易改变. 3.内部链接意味着只对正在编译的文件创建空间,外部连接意味着所有被编译过的文件创建一片单独的存储空间. 4.显

UPC 2224 Boring Counting (离线线段树,统计区间[l,r]之间大小在[A,B]中的数的个数)

题目链接:http://acm.upc.edu.cn/problem.php?id=2224 题意:给出n个数pi,和m个查询,每个查询给出l,r,a,b,让你求在区间l~r之间的pi的个数(A<=pi<=B,l<=i<=r). 参考链接:http://www.cnblogs.com/zj62/p/3558967.html #include <iostream> #include <cstdio> #include <cstring> #incl

数据挖掘工具R软件与Weka的比较分析

作为数据挖掘常用的两个工具软件,R软件和weka软件各有千秋,本文对这两种数据挖掘软件进行了比较与分析. R软件介绍 R是统计领域广泛使用的一款软件,是一个开放的统计分析和图形显示的程序设计环境,它与S编程语言相似. R 可以看作是贝尔实验室(Bell Laboratories)的Rick Becker,John Chambers和Allan Wilks开发的S语言的一种实现.S语言是一种用来进行数据探索.统计分析.作图的解释型语言.最初S语言的实现版本主要是S-PLUS.S-PLUS是一个商业

#r语言(二)笔记

#r语言(二)笔记 #早复习 #概述:R是用于统计分析.绘图的语言和操作环境 #对象: #数据类型--统称为对象 #向量(vector):用于存储数值型.字符型或逻辑型数据的一维数组. #定义向量: v<-1 v1<-c(1,2,3) 或者 assign('v1',c(1,2,3)) v<-1:10 #1~10 is.vector(v) #向量的输出: v 或者 print(v1) #向量的操作函数: #排序:sort(v1) 倒序: rev(v1) #最大值 最小值 平均值 max(v

【VMCloud云平台】SCCM(七)域内推软件(二)

继上一篇云平台完成SCCM部署篇之后,SCCM篇正式开始,今天将开始介绍SCCM为域内机器推送软件(紫色为完成实施,红色为实施中): 1. 点击上端部署: 2. 选择集合为之前创建的集合: 3. 由于已经分发内容,这一页就保持默认即可: 4. 选择部署类型为可用,可供用户选择: 5. 不指定计划,让用户随时可以安装: 6. 这里选择默认即可: 7. 默认下一步: 8. 确认下一步后点击确定: 9. 进入客户端,将部署计划进行手动触发(在控制面板中找到CCM代理): 10. 过一会儿,就可以看到软

将公司上线的 App软件生成二维码操作

将上线到App  Store 的软件生成 二维码,通过扫描二维码即可实现自动跳转到App Store 找到该软件进行下载安装 准备工作: 1. 一台mac  电脑 2. mac 版的  iTunes  软件(苹果电脑自带) A.  接下来就是在mac电脑的 iTunes 软件上找到贵公司上线的App软件(通过输入App软件的名称进行搜索到) 1. 打开mac电脑上的这个iTunes软件 2.  点击应用程序,然后在后面的搜索框中输入贵公司的App名称 回车键进行搜索 3. 接下来将搜索到的App

R语言基础(二) 可视化基础

> which.max(apply(x[c("x1","x2","x3")], 1, sum))49 > x$num[which.max(apply(x[c("x1","x2","x3")], 1, sum))][1] 2005138149 > hist(x$x1) > plot(x$x1,x$x2) > table(x$x1) 80 81 82 83 84