R语言入门与数据分析

R语言环境安装

安装文件下载地址:https://mirrors.tuna.tsinghua.edu.cn/CRAN/

这里可以根据你的操作系统选择合适的安装程序下载安装,我这里是mac版本。安装完成后的界面如下所示

HelloWorld

现有一个研究维生素C对于牙齿生长的数据。

  len supp dose
1 4.2 VC 0.5
2 11.5 VC 0.5
3 7.3 VC 0.5
4 5.8 VC 0.5
5 6.4 VC 0.5
6 10 VC 0.5
7 11.2 VC 0.5
8 11.2 VC 0.5
9 5.2 VC 0.5
10 7 VC 0.5
11 16.5 VC 1
12 16.5 VC 1
13 15.2 VC 1
14 17.3 VC 1
15 22.5 VC 1
16 17.3 VC 1
17 13.6 VC 1
18 14.5 VC 1
19 18.8 VC 1
20 15.5 VC 1
21 23.6 VC 2
22 18.5 VC 2
23 33.9 VC 2
24 25.5 VC 2
25 26.4 VC 2
26 32.5 VC 2
27 26.7 VC 2
28 21.5 VC 2
29 23.3 VC 2
30 29.5 VC 2
31 15.2 OJ 0.5
32 21.5 OJ 0.5
33 17.6 OJ 0.5
34 9.7 OJ 0.5
35 14.5 OJ 0.5
36 10 OJ 0.5
37 8.2 OJ 0.5
38 9.4 OJ 0.5
39 16.5 OJ 0.5
40 9.7 OJ 0.5
41 19.7 OJ 1
42 23.3 OJ 1
43 23.6 OJ 1
44 26.4 OJ 1
45 20 OJ 1
46 25.2 OJ 1
47 25.8 OJ 1
48 21.2 OJ 1
49 14.5 OJ 1
50 27.3 OJ 1
51 25.5 OJ 2
52 26.4 OJ 2
53 22.4 OJ 2
54 24.5 OJ 2
55 24.8 OJ 2
56 30.9 OJ 2
57 26.4 OJ 2
58 27.3 OJ 2
59 29.4 OJ 2
60 23 OJ 2

这里的第一列是牙齿的长度,第二列是维生素还是橙汁,第三列是剂量。将该数据保存到一个csv文件中。

> df <- read.table("/Users/admin/Downloads/RData/ToothGrowth.csv",sep=",",header=T)
> df

以上是读入并显示数据。

样品频数显示

> table(df$supp,df$dose)

显示结果

     0.5  1  2
  OJ  10 10 10
  VC  10 10 10

它数据中表示每种种类(OJ为橙汁,VC为VC药品)的不同剂量各有10个样品。

查看每种种类,每种剂量的牙齿生长平均值

> aggregate(df$len,by=list(df$supp,df$dose),FUN=mean)

显示结果

  Group.1 Group.2     x
1      OJ     0.5 13.23
2      VC     0.5  7.98
3      OJ     1.0 22.70
4      VC     1.0 16.77
5      OJ     2.0 26.06
6      VC     2.0 26.14

由以上数据,我们可以看出在0.5和1mg的剂量下,橙汁明显比VC药品的平均值要大很多,这说明橙汁更有利于牙齿生成。

查看每种种类,每种剂量的牙齿生长方差值

> aggregate(df$len,by=list(df$supp,df$dose),FUN=sd)

显示结果

  Group.1 Group.2        x
1      OJ     0.5 4.459709
2      VC     0.5 2.746634
3      OJ     1.0 3.910953
4      VC     1.0 2.515309
5      OJ     2.0 2.655058
6      VC     2.0 4.797731

方差用来反映每种种类,每种剂量的10个样品的差异情况,方差越小,说明样品差异越小。

检测实验结果是偶然的还是显著的,如果是偶然发生的,那么结果就不具有重复性,如果结果显著,就可以知道使用剂量和牙齿生长之间的关系。

> class(df$dose)  # 将剂量单位转化为分类因子
> df$dose <- as.factor(df$dose)
> fit <- aov(len~ supp*dose,data=df)  # 使用方差分析函数进行分析
> fit

显示结果

Call:
   aov(formula = len ~ supp * dose, data = df)

Terms:
                    supp     dose supp:dose Residuals
Sum of Squares   205.350 2426.434   108.319   712.106
Deg. of Freedom        1        2         2        54

Residual standard error: 3.631411
Estimated effects may be unbalanced

结果分析

> summary(fit)

运行结果

            Df Sum Sq Mean Sq F value   Pr(>F)    
supp         1  205.4   205.4  15.572 0.000231 ***
dose         2 2426.4  1213.2  92.000  < 2e-16 ***
supp:dose    2  108.3    54.2   4.107 0.021860 *  
Residuals   54  712.1    13.2                     
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
老乡鸡“开源”了 deepin-IDE 终于实现了自举! 好家伙,腾讯真把 Switch 变成了「思维驰学习机」 腾讯云4月8日故障复盘及情况说明 RustDesk 远程桌面启动重构 Web 客户端 微信基于 SQLite 的开源终端数据库 WCDB 迎来重大升级 TIOBE 4 月榜单:PHP 跌至历史最低点 FFmpeg 之父 Fabrice Bellard 发布音频压缩工具 TSAC 谷歌发布代码大模型 CodeGemma 不要命啦?做的这么好还开源 - 开源图片 & 海报编辑器工具
{{o.name}}
{{m.name}}

猜你喜欢

转载自my.oschina.net/u/3768341/blog/11046648