第一章 R语言介绍

经典的R图标

1.1 简介

维基百科上对于R的总结性描述:

R is an open source programming language and software environment for statistical computing and graphics that is supported by the R Foundation for Statistical Computing.The R language is widely used among statisticians and data miners for developing statistical software and data analysis.
Polls, surveys of data miners, and studies of scholarly literature databases show that R's popularity has increased substantially in recent years.
R is a GNU package.The source code for the R software environment is written primarily in C, Fortran, and R.
R is freely available under the GNU General Public License, and pre-compiled binary versions are provided for various operating systems. While R has a command line interface, there are several graphical front-ends available.

大致翻译一下,不是很严谨(请包涵):

R 是一种开源编程语言和软件环境,用于统计计算和绘图,由R 组织支持。R 语言被数据学家和数据挖掘者广泛的用于开发统计软件和数据分析。有关研究调查显示,R的受欢迎程度近年来持续上升。R是一个GNU 包。R 软件环境的源代码是用C,Fortran,和R写的。R是可以免费获取,在GNU条款下,并且其预编译的二进制版本提供给不同的操作系统。R不仅仅只有命令行交互页面,也有好几种图形化交互可以获得。

总结一下:R,与起源于贝尔实验室的S语言类似,是一种为统计计算和绘图而生的语言和环境,它是一套开源的数据分析解决方案,由一个庞大且活跃的全球性研究型社区维护。
R,有很多有点特性:免费、全面的统计研究平台、拥有顶尖水准的绘图功能、是一个可进行交互式数据分析和搜索的强大平台等等。

1.2 R的获取与安装

在官网:https://cran.r-project.org/可以免费获取各个系统的二进制版本,下载后安装即可。此外,一般我都会使用IDE,确实方便好用,我的系统是Linux-Ubuntu16.04,我可以装可视化的界面,所以也可以考虑从https://www.rstudio.com/下载对应版本的r-studio,具体方法详见:转录组入门(1):计算机及软件安装,里面有关于R安装的代码和R-Studio的代码,windows用户可能不需要代码,因为很简单,跟安装一般的软件一模一样,这里主要是Linux用户。

1.3 R的使用

R,是一种区分大小写的解释型语言,可以一次一条命令亦可以一次性执行在脚本文件中的一组命令。
交互期间,所有的数据对象都被保存在内存中。
R语句由函数和赋值构成——赋值符号为<- ,而不是=

例子:x <- rnorm(5);当然,也是允许使用‘=’ 来为对象赋值,但是不较少。并且R语言的赋值符号可以反转:rnorm(5) -> x

1.3.1 新手使用指南

在R中输入数据:根据给出的例子,理解R的赋值

#年龄向量数据赋值给age对象,体重向量数据赋值给weight对象
age <- c(1,3,5,2,11,9,3,9,12,3)
weight <- c(4.4,5.3,7.2,5.2,8.5,7.3,6.0,10.4,10.2,6.1)
#函数mean()求体重的平均值
mean(weight)
#函数sd()求体重的标准差
sd(weight)
#函数cor()体重和年龄的相关性
cor(age,weight)
#plot()可视化展示相关性
plot(age,weight)

1.3.2 获取帮助

一般通过“?+函数”的来查看某些函数的功能。此外通过help.start()来打开帮助文档的首页。

例如:?plot来查看plot函数的详细帮助文档

help.start()打开的帮助文档的首页

1.3.3 R工作空间

即当前R的工作环境,它存储着所有用户定义的对象(向量、矩阵、函数、数据框、列表)。在一个R会话结束时,你可以将当前工作空间保存到镜像中,并在下次启动时自动载入它。
命令可以交互地输入,使用上下方向键查看已输入命令的历史记录,非常的方便。
当前的工作目录是R用来读取文件和保存结果的默认目录,可以用getwd()来查看当前的工作目录,setwd()可以设定当前的工作目录。如果需要调用一个不在工作目录下的文件,则需在调用语句中写明完整的路径。

#设定工作目录
setwd("C:/myprojects/project1") 
#将当前的选项设置情况显示出来
options()
#数字需要格式化,显示为小数点后三位有效数字的格式。
options(digits=3)
#创建一个包含20个平均分布随机变量的向量
x <- runif(20)
#生成了此数据的摘要统计量
summary(x)
#生成直方图
hist(x)
#退出
q()

当要结束R时,如果选择了y,命令的历史记录保存到.Rhistory文件中,工作空间保存到当前目录中的.RData文件中,会话结束,R程序退出。
R语言中,反斜杠\表示转义符,所以在写路径是一定要用正斜杠/。

1.4 包

是函数、数据、预编译代码以一种定义完善的格式组成的集合。R安装完成后,电脑上会生成存储包的目录称为库(library)。
函数library()则可以显示库中有那些包,而.libPaths()能够显示库所在的位置。函数search()可以查看已经加载并且可用的包

  • R包的安装:install.packages("包名"),以及installed.packages()查看已经安装包的相关信息,update.packages()来更新所有已经安装的包。
  • 包的载入:library(包名)可以载入某个已经安装的包,这样才可以使用和调用它。
  • 命令help(package="package_name")可以输出某个包的简短描述以及包中的函数名称和数据集名称的列表。

1.5 R语言编程中的常见错误

  • 没有正确的区分大小写
  • 忘记使用必要的引号
  • 在函数调用时忘记使用括号
  • 在Windows上,路径名中使用了\
  • 使用了一个尚未载入包中的函数

1.6 示例实践

# 查看帮助文档
help.start()
# 安装vcd包
install.packages("vcd")
# 列出包中的函数和数据集
help(package="vcd")
# 载入包
library(vcd)
# 阅读包中数据集的描述
help(Arthritis)
Arthritis
example(Arthritis)
实例绘图

PS:这一部分内容实际上已经看了好几遍了,看这本书一直在前面几个章节,从来没有再向下了。其实我的R语言的入门是通过edx上的一门课程,那个时候真的是似懂非懂,没有完全明白,只是按着课程来,上完了完整的一门课,虽然不是特别了解,但是也让我对R语言有一个比较全面的入门,还是奠定了一定的基础,至少对R的基础语法结构,赋值方式,以及数据结构有了相当程度的了解,之后大概又有半年时间没有接触R语言了,现在又因为生物信息学,重新开始学习R,入门还是相当的快一些。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,425评论 4 361
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,058评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,186评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,848评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,249评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,554评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,830评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,536评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,239评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,505评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,004评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,346评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,999评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,060评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,821评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,574评论 2 271
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,480评论 2 267

推荐阅读更多精彩内容

  • linux资料总章2.1 1.0写的不好抱歉 但是2.0已经改了很多 但是错误还是无法避免 以后资料会慢慢更新 大...
    数据革命阅读 12,016评论 2 34
  • Ubuntu的发音 Ubuntu,源于非洲祖鲁人和科萨人的语言,发作 oo-boon-too 的音。了解发音是有意...
    萤火虫de梦阅读 98,505评论 9 468
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,036评论 29 470
  • 今天充实的一天带着老妈买了衣服,我觉得只要老妈开心我干啥都愿意,下午去了大学城,风风火火的,嫂子两天全天都在大学城...
    十碗汁阅读 146评论 0 1
  • 人生的路有平坦也有坎坷 平坦坎坷都得走 人生的河有深也有浅 深浅都得趟 人生的风景有美丽也有萧条 美丽萧条都得欣赏...
    文采乐阅读 308评论 8 14