菜鸟也有梦想!

写在前面:本人的确是一只菜鸟,大学没学过编程,对于C语言和java也只是耳闻,R语言和Python是大学毕业后才知道(卑微)。本科只用过SPSS和EXCEL分析数据,目前马上研二,才认识到编程的重要性以及它的神奇。在Python和R之间选择了R来作为学习的主要目标,想达到的水平就是能够用R绘制论文中各种图和进行数据分析。不知道这个学习的历程持续多久,希望我能坚持到底!不断的学习,反复的练习!不求成为高手,只求从入门的菜鸟蜕变为一个真正的R使用者。

入门

我也不知道现在算不算入门了… ̄□ ̄||,最近一边上课一边自学,上课的内容难度较大,自学是从最基本的开始。网课老师讲的不够仔细而且听久了容易感到枯燥,也无法保证每个语句都有时间动手敲一遍。但是,在自学的过程中,可以充分体验复制粘贴的快乐哈哈哈,而且可以选择自己感兴趣的packages进行学习,不懂的可以通过各种途径搜索,查得多了,看得多了,敲得多了,对代码的认识也越来越深刻。
推荐一个学习R的包swirl,R亲自带我们学习!

install.packages("swirl")
library(swirl)

用了大约一天半的时间刷完了所有的模块,感觉很有意思,是一种引导式的学习。虽然都是最基本的东西,但对于入门者来说,能够学到不少,我本人受益匪浅,并且刷一遍不够,要多刷几遍,才能信手拈来。另外,给大家推荐一本书《R与tidyverse——数据分析入门》,前几章是对R的基本介绍,后面我还没看。网址:
https://tianyishi2001.github.io/r-and-tidyverse-book/import-export.html
在知乎上看到有大佬买了很多R语言的书,虽然我照着全买下来,但是我深知根本看不完!所以基于目前的需求,买了其中一本《ggplot:数据分析与图形艺术》。还在路上…

学习T检验

第一课,先来回顾一下数据分析中比较常用的T检验。
t检验,亦称student t检验(Student’s t test),主要用于样本含量较小(例如n < 30),总体标准差σ未知的正态分布。
适用条件:
(1) 已知一个总体均数;
(2) 可得到一个样本均数及该样本标准差;
(3) 样本来自正态或近似正态总体。

T检验可以分为单总体检验双总体检验,以及配对样本检验

  1. 单总体t检验是检验一个样本平均数与一个已知的总体平均数的差异是否显著。举个例子,某地区年均降水量为400mm,而我们在近十年(2008-2018年)获取每年的年均降水量,分别是388,379,401,390,417,402,376,399,411,420mm。问题:近十年的年均降水量与该地区的历史年均降水量有没有显著性差异?

代码如下:

precipitation <- c(388,379,401,390,417,402,376,399,411,420)
t.test(precipitation, alternative = "greater", mu = 400 )
#alternative表示备择假设,two.sided(缺省),双边检验(H1:μ≠H0),less表示单边检验(H1:μ<μ0),greater表示单边检验(H1:μ>μ0)
#mu表示原假设μ0,paired表示是否配对样本T检验,conf.level置信水平,即1-α,通常是0.95
#var.equal是逻辑变量,var.equal=TRUE表示两样品方差相同,var.equal=FALSE(缺省)表示两样本方差不同。

运行后结果如下:

One Sample t-testdata:  precipitation
t = -0.35636, df = 9, p-value = 0.3649
alternative hypothesis: true mean is less than 400
95 percent confidence interval:-Inf 407.0447
sample estimates:
mean of x 398.3

检验结果为t=-0.35636,显著性P值=0.3649>0.05,接受原假设,说明近十年的年均降水量与历史年均降水量无显著差异。

  1. 双总体t检验是检验两个样本平均数与其各自所代表的总体的差异是否显著。双总体t检验又分为两种情况,一是独立样本t检验(各实验处理组之间毫无相关存在,即为独立样本),该检验用于检验两组非相关样本被试所获得的数据的差异性;一是配对样本t检验,用于检验匹配而成的两组被试获得的数据或同组被试在不同条件下所获得的数据的差异性,这两种情况组成的样本即为相关样本。
    (1)独立样本t检验
    例子:两个坡面,一个阳坡,一个阴坡,100cm的土壤剖面,从上往下每隔10cm取一次土样,测定土壤含水量。类似于双因素十水平。(阳坡:8.39,9.71,7.47,6.75,7.69,10.66,8.08,10.07,9.27,7.88%;阴坡:8.46,10.71,8.17,6.48,8.09,9.87,8.99,11.07,10.27,7.46%)问题:阴坡与阳坡的土壤含水量在100cm剖面的分布是否有显著差异?
    代码如下:
library(car)
yangpo <- c(8.39,9.71,7.47,6.75,7.69,10.66,8.08,10.07,9.27,7.88)
yinpo <- c(8.46,10.71,8.17,6.48,8.09,9.87,8.99,11.07,10.27,7.46)
shapiro.test(yangpo)
shapiro.test(yinpo)
#正态分布检验
y <- c(8.39,9.71,7.47,6.75,7.69,10.66,8.08,10.07,9.27,7.88,8.46,10.71,8.17,6.48,8.09,9.87,8.99,11.07,10.27,7.46)
group=as.factor(c(1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2))
leveneTest(y = y, group=group)
#方差齐性检验
a <- factor(c(rep(1,10),rep(2,10)))
leveneTest(y~group)
#方差齐性检验(看起来代码简单一些,但结果是一样的)

运行后结果如下:

> shapiro.test(yangpo)Shapiro-Wilk normality testdata:  yangpo
W = 0.95519, p-value = 0.73> shapiro.test(yinpo)Shapiro-Wilk normality test
data:  yinpo
W = 0.96352, p-value = 0.8251

R自身包含var.test和bartlett.test方差齐性检验,分别对应两组和多组数据。在car包中有levene.test(也是SPSS的默认方差齐性检验方法)。在此选用了levene.test(),也就是新版本中的leveneTest()。

> leveneTest(y = y, group=group)
Levene's Test for Homogeneity of Variance (center = median)Df F value Pr(>F)
group  1  0.3365 0.569118
> leveneTest(y~group)
Levene's Test for Homogeneity of Variance (center = median)Df F value Pr(>F)
group  1  0.3365 0.569118

可以看出,阴坡和阳坡的显著性P值均大于0.05,符合正态分布,也通过了方差齐性检验。
接下来进行t检验:

t.test(yangpo,yinpo,paired = FALSE)

结果如下:

> t.test(yangpo,yinpo,paired = FALSE)Welch Two Sample t-testdata:  yangpo and yinpo
t = -0.58114, df = 17.532, p-value = 0.5685
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:-1.663954  0.943954
sample estimates:
mean of x mean of y 8.597     8.957

显著性P值=0.5685>0.05,说明阴坡与阳坡的土壤含水量在100cm剖面没有显著差异。
(2)配对t检验
例子:人工降雨试验,雨强是60,时间10min,每隔1min收集一次径流。设置两个土槽,控制单一变量,即坡度分别为10°和20°。(10°:1,2,3,4,5,6,7.5,8,8.2,8.5;20°:2,4,6,8,10,11,11.5,12,12.3,12.4)
在此就不进行正态分布和方差齐性检验了,直接进行t检验。
代码如下:

ten <- c(1,2,3,4,5,6,7.5,8,8.2,8.5)
twenty <- c(2,4,6,8,10,11,11.5,12,12.3,12.4)
t.test(ten,twenty,paired=TRUE)

运行后结果如下:

 Paired t-testdata:  ten and twenty
t = -8.9938, df = 9, p-value = 8.587e-06
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:-4.505491 -2.694509
sample estimates:
mean of the differences -3.6

可以看到显著性P值= 8.587e-06,远小于0.001,两个坡度之间的径流量具有极显著差异,或者说坡度对径流量具有显著影响。(表述可能不够规范)

今天的学习任务结束!明天继续加油ヾ(◍°∇°◍)ノ゙

一个菜鸟学习R语言的历程(一)相关推荐

  1. 独家 | 手把手教你学习R语言(附资源链接)

    作者:NSS 翻译:杨金鸿 术语校对:韩海畴 全文校对:林亦霖 本文约3000字,建议阅读7分钟. 本文为带大家了解R语言以及分段式的步骤教程! 人们学习R语言时普遍存在缺乏系统学习方法的问题.学习者 ...

  2. 语句拼接_第2课:一个周末学会R语言数据处理:表拆分和拼接

    从一线收集了两百个文件,要整合到一起?总部一张全国两百个城市的汇总表,拆成两百个小文件?开什么玩笑,难道要复制粘贴到天荒地老... 不用这么麻烦,一个循环,一个语句,实现快速表拆分和表拼接,从此告别复 ...

  3. vector 赋值_从零开始学习R语言(一)——数据结构之“向量”(Vector)

    本文首发于知乎专栏:https://zhuanlan.zhihu.com/p/59688569 也同步更新于我的个人博客:https://www.cnblogs.com/nickwu/p/125370 ...

  4. 菜鸟学习c语言之路开始

    我是一个第一次学习c语言的小菜鸟,写的不好,请大家多多见谅. 我学习c语言是想为以后在编程语言的学习中打下坚实的基础,并且想通过c语言的学习来通过一门考试想拿到很高的分数,来通过那个考试. 我打算每天 ...

  5. 超级干货 :手把手教你学习R语言(附资源链接)

    作者:NSS:翻译:杨金鸿:校对:韩海畴,林亦霖: 本文约3000字,建议阅读7分钟. 本文为带大家了解R语言以及分段式的步骤教程! 人们学习R语言时普遍存在缺乏系统学习方法的问题.学习者不知道从哪开 ...

  6. 手把手教你学习R语言

    本文为带大家了解R语言以及分段式的步骤教程! 人们学习R语言时普遍存在缺乏系统学习方法的问题.学习者不知道从哪开始,如何进行,选择什么学习资源.虽然网络上有许多不错的免费学习资源,然而它们多过了头,反 ...

  7. R语言基础(用最简单的方式了解学习R语言)

    心灵导语:沮丧的感觉是由大脑的懒造成的,它在提示你放弃做这么难的事情,去找些容易或有趣的事情来做. 学习编程也一样,大脑越是感到沮丧,你越应该鞭策自己去战胜沮丧.认识到这一点之后,在学习编程的过程中, ...

  8. 生信学习——R语言练习题-初级(附详细答案解读)

    题目目录 1. 打开 Rstudio 告诉我它的工作目录. 2. 新建6个向量,基于不同的数据类型.(重点是字符串,数值,逻辑值) 3. 告诉我在你打开的rstudio里面 getwd() 代码运行后 ...

  9. 用最酷的方法学习R语言

    1. 看大神怎么说 前几天去新疆培训,制作了R语言的基础教程,在翻阅资料时,看到了知乎张敬信关于R学习的观点,很是赞同. 张敬信老师写了一本书<R语言编程–基于tidyverse>,网址: ...

最新文章

  1. java中 运算符
  2. Android SharedPreferences 见解
  3. httpd反代 + tomcat cluster + redis会话保持
  4. 流行的开源数据挖掘tool
  5. java自定义标签简单_JSP 自定义标签之一 简单实例
  6. mysql binlog ignore db_MySQL binlog_ignore_db 参数的具体使用
  7. 微信授权获取code(微信支付)
  8. 【修订总结】【五万字深度洞察】毒舌阿朱最看好的企业服务商
  9. matlab利用经纬度计算距离_【MATLAB】经纬度换算距离
  10. CNKI E-Study与Endnote 的参考文献题录互导
  11. C# 正则表达式数字匹配
  12. CNC加工中心的刀具补偿详解
  13. 上传Excel文件进度条原理
  14. Jenkins编辑或替换All view
  15. BDW01手把手系列01:BDW01开发板基于TencentOS Tiny之helloworld!
  16. 萨克斯《全球视角的宏观经济学》课后答案
  17. 建设智能工厂建设,主要划分为哪几步?
  18. DirectD3D-光照和材质
  19. 【Web技术】1206- 如何设计一款支持懒加载的瀑布流组件?
  20. 为什么都有API网关?聊聊API网关的作用

热门文章

  1. 利用IPHONE自带播放器播放视频
  2. Linux安装Siege
  3. jboss portal+MySql5 安装使用手册
  4. “开源是一个自我实现的预言”,Shifu创始人陈永立说道
  5. 《麦肯锡方法》读书笔记1
  6. ipa签名工具(IPA Resign Tool)在windows和macos系统下对苹果ipa文件一键重签名
  7. STM32外部引脚电路个人总结
  8. STM32 RCC浅析
  9. 应聘人工智能岗位?这10个必问的面试题,你准备好了吗
  10. 【计算机毕业设计】437物流管理系统设计与实现