R语言学习笔记-1

273 阅读5分钟

前言

大家好哇!我现在是一名大三的学生,这学期正在学习R语言这门课,我觉得像编程语言这样的课程,光靠老师讲授是远远不够的,更多的是需要我们自己去看书,去实践,多敲一敲书上的代码,有时只有自己真正去实践之后,才能找到问题所在,所以我准备每周对自己的学习情况进行总结,并以学习笔记的形式输出。希望可以和社区里正在学习R语言或者准备学习R语言的同学一起交流学习,如有错误,还请各位大佬批评指正!

ps:我学习R语言所使用的参考书为《R语言实战》(第2版) [美]卡巴科弗 [译]王小宁 北京人民邮电出版社

R语言简介:

提起R语言,可能有些同学会有些陌生。的确,R语言确实不像C语言、Java、python这些语言那么有影响力,但R语言既然存在,就一定有其存在的价值,而且它肯定有着某方面的优势,并且这个优势是别的语言无法取代的。那R语言的优势到底是什么呢?目前以我的了解,R语言最为强大的就是它的绘图功能,但因为我也是刚刚入门,所以接下来就让我们一起来揭秘R语言那神秘的面纱吧!

第一章:R语言介绍

一、 R的获取和安装

二、 R的使用

  • R使用<-,而不是传统的=作为赋值符号
x <- rnorm(5) #创建了一个名为x的向量对象,它包含5个来自标准正态分布的随机偏差
  • 代码示例1-1
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(weight) #取体重的均值
sd(weight) #取体重的标准差
cor(age,weight) #体重与年龄的相关度
plot(age,weight) #用图形展示月龄和体重的关系
q() #退出

image.png

image.png

  • R绘制图形实例:
demo(graphics)

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

获取帮助

  • 一般使用? + 函数名
    例如:
?matrix

输入命令后会自动弹出该函数的帮助网页 image.png

工作空间

函数功能
getwd()显示当前的工作目录
dir.create()创建新目录
setwd("mydirectory")修改当前的工作目录为mydirectory
ls()列出当前工作空间中的对象
rm(objectlist)移除(删除)一个或多个对象
history(#)显示最近使用过的#个命令(默认值为 25)
savehistory("myfile")保存命令历史到文件 myfile 中(默认值为.Rhistory)
loadhistory("myfile")载入一个命令历史文件(默认值为.Rhistory)
save.image("myfile")保存工作空间到文件 myfile 中(默认值为.RData)
save(objectlist, file="myfile")保存指定对象到一个文件中
load("myfile")读取一个工作空间到当前会话中(默认值为.RData)
q()退出 R,将会询问你是否保存工作空间
  • 代码示例1-2
setwd("D:/1") #当前工作目录被设置为D:/1
options() #显示当前的选项设置情况
options(digits=3) #数字显示为具有小数点后三位有效数字的格式
x <- runif(20) #创建了一个包含20个0-1间均匀分布随机变量的向量
summary(x) #生成了此数据的摘要统计量
hist(x) #生成了此数据的直方图
q() #退出R

image.png

image.png

输入和输出

  1. 输入:一般使用source函数
    • 例如:source("myscript.R")将执行包含在文件myscript.R中的R语句集合
    • 如果文件名中不包含路径,R将假设此脚本在当前工作目录中
  2. 输出:
  • 文本输出:一般使用sink函数
    • 例如:sink("filename")将输出重定向到文件filename中
    • 默认情况下,如果文件已经存在,则它的内容将被覆盖
    • 使用参数append=TRUE可以将文本追加到文件后,而不是覆盖它
    • 参数split=TRUE可将输出同时发送到屏幕和输出文件中
    • 不加参数调用命令sink()将仅向屏幕返回输出结果
  • 图形输出:可使用下表中的函数,最后使用dev.off()将输出返回到终端
函数输出
bmp("filename.bmp")BMP 文件
jpeg("filename.jpg")JPEG 文件
pdf("filename.pdf")PDF 文件
png("filename.png")PNG 文件
postscript("filename.ps")PostScript 文件
svg("filename.svg")SVG 文件
win.metafile("filename.wmf")Windows 图元文件

  • 函数library()可以显示库中有哪些包

image.png

  • 命令search()可以告诉你哪些包已加载并可使用

image.png

  • 使用命令install.packages()可以安装想要的包,括号内可加入包的名称,例如:install.packages("gclus")

  • 使用命令update.packages()可以更新已经安装的包

  • 使用命令installed. packages()可以列出已安装的包的信息

  • 包的载入:library(gclus)

  • 包的使用方法:help(package="package_name")


  • 代码示例1-3
help.start() #打开帮助文档首页
install.packages("vcd") #安装vcd包
help(package="vcd") #列出此包中可用的函数和数据集
library(vcd) #载入这个包
help(Arthritis) #查看数据集Arthritis的描述
Arthritis #显示数据集Arthritis的内容
example(Arthritis) #运行数据集Arthritis自带的示例
(q) #退出

三、 R语言编程中的常见错误

  • 使用了错误的大小写help()Help()HELP()是三个不同的函数(只有第一个是正确的)
  • 忘记使用必要的引号install.packages("gclus")能够正常执行,然而 install.packages(gclus)将会报错
  • 在函数调用时忘记使用括号,例如,要使用help()而非help,即使函数无需参数,仍需加上()
  • 在Windows上,路径名中使用了\,R将反斜杠视为一个转义字符,setwd("c:\mydata")会报错,正确的写法是setwd("c:/mydata")setwd("c:\\mydata")
  • 使用了一个尚未载入包中的函数,函数order.clusters()包含在包gclus中。如果还没有载入这个包就使用它,将会报错

未完待续