当前位置: 首页 > news >正文

统计学-R语言-4.1

文章目录

  • 前言
  • 编写R函数
  • 图形的控制和布局
    • par函数
    • layout函数
  • 练习


前言

安装完R软件之后就可以对其进行代码的编写了。


编写R函数

如果对数据分析有些特殊需要,已有的R包或函数不能满足,可以在R中编写自己的函数。函数的定义格式如下所示:

functionname<-function(a1, a2,...)expression

该式中, functionname是函数名称; function指明该对象为函数类型;a1,a2,为函数中涉及的参数; expression是函数的具体内容。

比如,要自己编写函数计算50个学生考试分数的平均数、中位数、极差和标准差,代码如下所示。(使用example1_1)。

load("C:/example/ch1/example1_1.RData")  # 装载数据
x<-example1_1[,4]            # 为x赋值为example1_1的第4列
myfun<-function(x){           # 编写函数如下
n<-length(x)
mean<-sum(x)/n
median<-median(x)
r<-max(x)-min(x)
s<-sd(x) 
df<-data.frame(样本量=n,平均数=mean,中位数=median,极差=r,标准差=s)
return(df)
}
myfun(x)    # 返回函数结果 

在这里插入图片描述

图形的控制和布局

par函数

参数介绍如下表:
在这里插入图片描述
不同数字代表的R的绘图线型(Ity)和线宽(lwd):

在这里插入图片描述
不同数字代表的R的绘图符号(pch):

在这里插入图片描述

par函数中的参数 mfrow(或mfcol)可以将绘图区域分割成R×C的矩阵,从而可以在一个绘图区域中绘制多个图,但参数向量c(nr,nc)是将绘图区域的行和列等分。

layout函数

有时需要将绘图区划分成不同大小的区域以满足不同图形的要求,这时可以使用layout函数来布局。函数的格式及参数的意义如下表所示:
在这里插入图片描述

layout(matrix(c(1,2,3,3),nrow=2,ncol=2),widths=c(2,1)) # 布局绘图环境
par(mai=c(0.6,0.6,0.1,0.1),cex=0.7)       # 设定图形边距、文字和绘图符号大小
x<-rnorm(5000)              # 生成5000个标准正态分布随机数
y<-rchisq(5000,10)          # 生成5000个卡方分布随机数
hist(x,prob=TRUE,col="lightblue",xlab="x",ylab="Density",ylim=c(0,0.4),main="")                   # 绘制x的直方图
hist(y,freq=FALSE,col="pink",xlab="y",ylab="Density",main="")    # 绘制y的直方图
boxplot(x,col="red",lwd=1)                  # 绘制x的箱线图

在这里插入图片描述

layout(matrix(c(1,2,3,3),nrow=2,ncol=2,byrow=TRUE),heights=c(2,1)) # 布局绘图环境
par(mai=c(0.6,0.6,0.1,0.1),cex=0.7)    # 设定图形边距、文字和绘图符号大小
x<-rnorm(1000)            # 生成1000个标准正态分布随机数
y<-rchisq(1000,10)        # 生成1000个卡方分布随机数
hist(x,prob=TRUE,col="lightblue",xlab="x",ylab="Density",ylim=c(0,0.4),main="")     # 绘制x的直方图
plot(x,y,xlab="x",ylab="y")   # 绘制x和y的散点图
boxplot(y,col="red",lwd=1,horizontal=TRUE,varwidth=TRUE)   # 绘制x的箱线图

在这里插入图片描述


练习

1、layout()函数通用格式?

2、如果绘图的布局如下所示,请写出正确的代码进行实现。

par(oma = c(2,2,2,2))
layout(matrix(c(1, 2, 1, 3), 2), widths = c(1, 3), heights = c(1, 2))
layout.show(3)

在这里插入图片描述

http://www.lryc.cn/news/281420.html

相关文章:

  • C++(1) —— 基础语法入门
  • 构建基于RHEL8系列(CentOS8,AlmaLinux8,RockyLinux8等)的支持63个常见模块的PHP8.1.20的RPM包
  • Vue-插槽(Slots)
  • 新火种AI|GPT-5前瞻!GPT-5将具备哪些新能力?
  • 安防视频监控系统EasyCVR设备分组中在线/离线数量统计的开发与实现
  • spring cloud之集成sentinel
  • 让车辆做到“耳听八方”,毫米波雷达芯片与系统设计
  • Python如何实现数据驱动的接口自动化测试
  • 高级分布式系统-第15讲 分布式机器学习--联邦学习
  • 小程序基础学习(事件处理)
  • 网络协议与攻击模拟_01winshark工具简介
  • 【linux学习笔记】网络
  • JUC-线程中断机制和LockSupport
  • 哈希表与哈希算法(Python系列30)
  • 『 C++ 』AVL树详解 ( 万字 )
  • Python下载安装pip方法与步骤_pip国内镜像
  • 自动化测试框架pytest系列之基础概念介绍(一)
  • 编码技巧:如何在Golang中高效解析和生成XML
  • 24校招,帆书测试开发工程师一面
  • Java 方法以及在计算机内部的调用问题
  • 【算法与数据结构】343、LeetCode整数拆分
  • 中级Python面试问题
  • Lede(OpenWrt)安装和双宽带叠加
  • HTML+JS + layer.js +qrcode.min.js 实现二维码弹窗
  • leetcode 142 环形链表II
  • 电阻表示方法和电路应用
  • 论文笔记(三十九)Learning Human-to-Robot Handovers from Point Clouds
  • 浅学Linux之旅 day2 Linux系统及系统安装介绍
  • 探索未来餐饮:构建创新连锁餐饮系统的技术之旅
  • Unity组件开发--AB包打包工具