音乐网站样式设计,我自己的网站 怎样做防火墙,怎么在小程序里开店铺,网站seo报告今天上课讲R语言#xff0c;要干什么没讲#xff0c;分析什么#xff0c;目的是什么没讲。助教基本上就是让我们打开窗口#xff0c;按要求抄代码指令#xff0c;代码原理也没讲......再加上最近正好在学概率论与数理统计#xff0c;肯定是有用的#xff0c;所以还是学习…今天上课讲R语言要干什么没讲分析什么目的是什么没讲。助教基本上就是让我们打开窗口按要求抄代码指令代码原理也没讲......再加上最近正好在学概率论与数理统计肯定是有用的所以还是学习总结一下吧。
概述
R是用于统计分析、绘图的语言和操作环境。R是属于GNU系统的一个自由、免费、源代码开放的软件它是一个用于统计计算和统计制图的优秀工具。
与其说R是一种统计软件还不如说R是一种数学计算的环境因为R并不是仅仅提供若干统计程序、使用者只需指定数据库和若干参数便可进行一个统计分析。R的思想是它可以提供一些集成的统计工具但更大量的是它提供各种数学计算、统计计算的函数从而使使用者能灵活机动的进行数据分析甚至创造出符合需要的新的统计计算方法。
目录
1.安装
2. 简单例程上手以及部分学习
R预备知识
简单指令上手
1.因子化数据帧
2.交叉制表
3.卡方检验
4.二项式检验
返回值
适用场景
注意事项
示例 1.安装
先安装R再安装Rstudio R 官方网站 https://www.r-project.org/ RStudio官网 https://www.rstudio.com/products/rstudio/download/ 2. 简单例程上手以及部分学习
R预备知识 ##1-变量名的命名 ### 数字不能开头 ### %号是非法字符不可以用来命名 ### .号后面不可以跟数字 ##2-赋值赋值给谁箭头就指向谁 ### 分别是左箭头-键-键等号左边的那个不要按Shift等号右箭头- higth-c(175,169,179,175,180,183) higth_mean-mean(higth)#对身高求均值 ##3-变量的显示 a-2 a #命令行直接输入变量名 print(a) #利用print()函数 ##4-安装R包 install.packages() library() ##5-文件的读取 readLines() read.csv()#推荐使用 read.table() read.xlsx() ##6-软件的推出与保存 ### 可以直接输入q()函数也可以右上角直接叉掉 ### 有.R、.Rdata等后缀.R一般是保存代码的.Rdata是保存处理后的数据的。 ##7-快捷键介绍 ## 运行当前/被选中的代码CtrlEnter ## 设置工作环境CtrlShiftH ## 快捷赋值 - alt- ## 查找不懂的函数?函数如?plot ## R会自动提示你需要的东西 简单指令上手
Tools-Global options-Pane layout 面板设置##读取文件
getwd() 获取工作目录
setwd(G:/工效学/class_R) 设置工作目录记得引号
prefsAB -read.csv(prefsAB.csv)
ide2 - read.csv(ide2.csv) 读取文件##查看数据
View(prefsAB)#分类变量需做因子化
prefsAB$Subject factor(prefsAB$Subject)
prefsAB$Pref factor(prefsAB$Pref) 在R中使用factor函数来创建因子
str(prefsAB)#需要对类别数据进行因子化以实现研究对象的分组、分类计算
#可以看到有多少类别和水平##基本统计
summary(prefsAB)
plot(prefsAB$Pref) # 画一个基本的柱状图##执行检验
prfs xtabs( ~ Pref, dataprefsAB)
prfs
chisq.test(prfs)
binom.test(prfs)install.packages(plyr) 下载程序包
library(plyr) 加载包ddply(ide2,~IDE,summarise,Time.meanmean(Time),Time.sdsd(Time))
hist(ide2[ide2$IDE VStudio,]$Time)
hist(ide2[ide2$IDE Eclipse,]$Time)
plot(Time ~ IDE,dataide2)#首先是正态性假设
# Shapiro-Wilk normality test(夏皮罗-威尔克检验)
shapiro.test(ide2[ide2$IDE VStudio,]$Time) #H0研究对象符合正态分布。
shapiro.test(ide2[ide2$IDE Eclipse,]$Time)
## 满足正态性假设
m aov(Time ~ IDE, dataide2) # fit model
shapiro.test(residuals(m)) # test residuals
qqnorm(residuals(m)); qqline(residuals(m))读取CSV文件、查看数据框、对数据框的特定列进行因子化并对因子化后的数据进行摘要和绘图。
1.因子化数据帧
因子是用于表示分类数据的类型这对于分类分析和统计建模非常有用。
factor 函数用于向量或单个列而不是整个数据框。如果你尝试对整个数据框应用 factor 函数会遇到错误。你需要对数据框中的特定列进行因子化而不是对整个数据框。 # 读取CSV文件 prefsAB - read.csv(prefsAB.csv) ide2 - read.csv(ide2.csv) # 查看数据框内容 View(prefsAB) View(ide2) # 对prefsAB数据框中的列进行因子化 prefsAB$Subject - factor(prefsAB$Subject) prefsAB$Pref - factor(prefsAB$Pref) # 查看因子化后的数据框 View(prefsAB) # 获取数据框的摘要信息 summary(prefsAB) # 绘制prefsAB$Pref的图表 plot(prefsAB$Pref) plot(prefsAB$Pref)绘制 prefsAB 数据框中 Pref 列的条形图有助于可视化每个因子水平的频数。
summary(ide2) 用于生成并显示数据框的摘要信息包括每列的统计信息。对于因子列这将显示每个因子水平的频数。 head() 函数用于查看数据集的开头部分它默认显示数据框的前六行。这对于快速查看数据集的结构和内容非常有用可以帮助你了解数据的组织方式和其中包含的信息。
str(ide2) 函数显示了关于数据框 ide2 结构的摘要信息。在这个摘要中我们可以看到
数据框 ide2 包含了 40 行观察值observation和 3 个变量variables。第一个变量是 Subject是一个整数int表示实验参与者的编号。第二个变量是 IDE是一个字符向量chr表示实验中使用的集成开发环境IDE的名称。第三个变量是 Time是一个整数int表示实验中使用该 IDE 所花费的时间以某个单位表示可能是秒。
summary(ide2) 函数提供了关于数据框 ide2 中数值变量的摘要统计信息。让我们逐一解释这个摘要 Subject: 这是实验参与者的编号。摘要显示了每个不同值的频数。例如出现了1次的有1、2、3、4等没有显示的Subject编号表示频数为1。Other行表示其他出现次数少于5次的编号。 IDE: 这是实验中使用的集成开发环境IDE的名称。摘要显示了每个不同值的频数。在你的数据中有20次使用Eclipse和20次使用VStudio。 Time: 这是实验中使用每个IDE所花费的时间。摘要包括了五个统计量最小值Min.、第一四分位数1st Qu.、中位数Median、平均值Mean、第三四分位数3rd Qu.和最大值Max.。
2.交叉制表 prfs xtabs(~Pref,dataprefsAB) chisq.test(prfs) prfs xtabs(~Pref, dataprefsAB) 执行了一个交叉制表的操作它会创建一个交叉制表显示了在 prefsAB 数据框中 Pref 列中各个水平A 和 B的频数。xtabs函数用于快速计算一个或多个变量的频率响应变量~自变量。
xtabs 函数是 R 中用来创建交叉制表的函数。~Pref 表示要对数据框 prefsAB 中的列 Pref 进行交叉制表。dataprefsAB 表示这个操作应该在 prefsAB 数据框中进行。
因此prfs 变量中存储了一个交叉制表的结果显示了在 prefsAB 数据框中 Pref 列中各个水平A 和 B的频数。
3.卡方检验
卡方检验的目的 卡方检验用于检验观察到的类别数据是否与期望频率有显著差异。其基本思想是比较观察到的频数observed frequencies和期望频数expected frequencies并通过计算一个统计量来评估这种差异是否显著。 chisq.test 函数对 prfs 执行卡方检验
输出如下
Chi-squared test for given probabilities
data: prfs X-squared 17.067, df 1, p-value 3.609e-05
结果分析
X-squared 17.067这是计算出的卡方统计量。df 1这是自由度。p-value 3.609e-05这是计算出的p值。
由于p值非常小远小于0.05我们可以拒绝零假设认为 Pref 变量中的A和B类别的出现频率有显著差异。
通过卡方检验能够确定 prefsAB 数据中 Pref 列的两个类别A和B是否存在显著的频数差异。结果显示A和B的出现频率差异显著这表明在这个数据集中A和B的分布并不是随机的可能存在某种偏好或影响因素。
4.二项式检验
binom.test 函数用于执行二项式检验也称为精确二项检验。它用于检验一个二项分布中的成功概率是否等于某个给定的值。 binom.test(x, n, p 0.5, alternative c(two.sided, less, greater), conf.level 0.95) x: 成功的次数或者是一个长度为2的向量包含两个元素分别是成功的次数和总的试验次数。n: 总的试验次数。如果 x 是一个长度为2的向量则该参数被忽略。p: 假设的成功概率。默认为0.5。alternative: 检验的备择假设类型可以是 two.sided双侧检验默认、less左侧检验、或者greater右侧检验。conf.level: 置信水平默认为0.95表示95%的置信水平。
返回值
函数返回一个包含二项式检验的结果的列表其中包括
estimate: 成功概率的估计值。p-value: 检验的p值。conf.int: 成功概率估计的置信区间。method: 使用的检验方法的名称。
适用场景
当你有一组二项分布的数据想要检验其中的成功概率是否等于某个给定的值时可以使用二项式检验。常见的应用场景包括医学研究、产品测试、市场调查等。
注意事项
在执行二项式检验之前确保你的数据满足二项分布的假设即每次试验之间是相互独立的且成功概率在各次试验中保持不变。对于小样本数据 示例 假设你有一组硬币抛掷的数据你想要检验硬币正面朝上的概率是否等于0.5。你可以使用 binom.test 函数来进行检验 # 假设你投掷了100次硬币正面朝上的次数是45次 binom.test(45, 100, p 0.5) binom.test(45, 100, p 0.5)这将会执行一个双侧的二项式检验检验硬币正面朝上的概率是否等于0.5返回相应的检验结果。