《R数据科学》第2 4 6章-工作流
第2章 工作流:基础
1. 代码基础
2. 对象名称
3. 函数调用
第4章 工作流:脚本
1. RStudio 脚本编辑器
2. 运行代码
3. RStudio自动诊断
第6章 工作流:项目
1. 什么是真实的?
2. 你的分析位于哪里?
3. 路径与目录
4. RStudio项目
该部分涉及《R数据科学》中的第2、4、6章
第2章 工作流:基础
1. 代码基础
可以将 R 当作计算器来使用:
> 1/200*30
[1] 0.15
> (59+73+2)/3
[1] 44.66667
> sin(pi/2)
[1] 1
可以使用 <- 来创建新对象;
赋值语句:object_name <- value;
理解:某个对象名得到了某个值
输入 <- 的快捷方式:Alt+-(Alt 加上减号)
> x<-3*4
> x
[1] 12
2. 对象名称
必须以字母开头,并且只能包含字母、数字、 _ 和 .。
命名惯例:用小写单词,并用 _ 分隔:如 i_use_snake_case
可以通过输入对象名称来查看这个对象:
> x
[1] 12
必须输入完全精确的指令,不能有输入错误,还要区分大小写。
3. 函数调用
R 中有大量内置函数,调用方式:function_name(arg1 = val1, arg2 = val2, ...),如 seq() 函数可以生成规则的数值序列
输入3个字符(如seq),会自动弹出所有可能的命令
输入字符不足3个时(如se) ,需要按Tab键才会弹出所有可能的自动完成命令
如何获得详细的帮助信息?选定目标,按F1键,在右下角窗格的帮助标签页中看到
选定需要的函数后按 Tab 键,RStudio会为自动添加开括号(()和闭括号())
RStudio会自动完成一对双引号以方便输入
用括号将赋值语句括起来,相当于连续执行赋值语句和“输出到屏幕”的操作
> (y <- seq(1,10,length.out=5))
[1] 1.00 3.25 5.50 7.75 10.00
创建的所有对象可以在右上角窗格中的程序环境中看到(只要创建了对象,即使没有“输出到屏幕”,也会在程序环境中显示)
第4章 工作流:脚本
1. RStudio 脚本编辑器
新建脚本编辑器:“File → New File → R Script”或快捷键( Ctrl+Shift+N)
RStudio 的4个窗格:
重要的代码要放在脚本编辑器中。当退出 RStudio 时,会自动保存编辑器中的内容,并在重新打开时自动加载编辑器中的内容。尽管如此,仍然要定时保存脚本,并做好备份。
控制台用于调试。
2. 运行代码
Ctrl+Enter:运行当前代码。并在运行后将光标移到下一个语句,
重复按 Ctrl+Enter:可以语句顺序轻松运行整个脚本
Ctrl+Shift+S:一次性运行整个脚本
3. RStudio自动诊断
脚本编辑器会利用红色波浪线和边栏的红叉来高亮显示语法错误:
将鼠标移到红叉上就可以看到错误提示:
RStudio还能找出潜在的代码问题:
第6章 工作流:项目
1. 什么是真实的?
R 脚本是“真实的”。可以通过 R 脚本(以及数据文件)重建 R 环境(也就是环境窗格中列出的那些对象),但在 R 环境中重建 R 脚本就要困难得多!
强烈建议你指示 RStudio 不在两次会话间保存工作空间:Tools → Global Options → General → 将Save workspace to .RData on exit设置为Never → OK
RStudio重启时无法记住前一次运行代码的结果(重启以后控制台和环境窗格都是空的,只有编辑器中有内容)
将所有重要的计算过程都写在代码中
Ctrl+Shift+F10 :重启RStudio。
Ctrl+Shift+S:重新运行当前脚本。
2. 你的分析位于哪里?
工作目录:R在这个目录中查找要加载的文件,也将要保存的文件放在这个目录中。
RStudio 在控制台上方显示当前工作目录
可以通过运行 getwd() 命令在 R 代码中输出这个目录:
getwd()
#> [1] "/Users/hadley/Documents/r4ds/r4ds"
每开始一个项目,都应该将 R 的工作目录设置为与这个项目相关的目录
3. 路径与目录
路径有 2 种基本风格:Mac/Linux 和 Windows,主要有以下 3 种区别。
(1)分隔路径中各个部分的符号不同:
Mac 和 Linux 用的是斜杠(如 plots/diamonds.pdf),
Windows 用的则是反斜杠(如 plots\diamonds.pdf)。
反斜杠在 R 中具有特殊意义,因此, 如果想要表示路径中的单个反斜杠,你需要输入 2 个反斜杠!
(2)绝对路径的形式不同:
Windows 系统中,绝对路径的开头是驱动器号(如C:)或两个反斜杠(如 \servername);
Mac/Linux 系统中,绝对路径的开头则是斜杠“/”(如 /user/hadley)。
千万不要在脚本中使用绝对路径
绝对路径:文件在硬盘上真正存在的路径。
如“bg.jpg”这个图片是存放在硬盘的“E:\book\网页布局\代码\第2章”目录下,
那么“bg.jpg”这个图片的绝对路径就是“E:\book\网页布局\代码\第2章\bg.jpg"
那么如果要使用绝对路径指定网页的背景图片就应该使用以下语句:
<body backround="E:\book\网页布局\代码\第2章\bg.jpg" >
相对路径:相对于目标文件的位置
例1:同级目录
“s1.htm” 文件里引用了“bg.jpg”图片,那么“bg.jpg”图片相对于“s1.htm”来说,是在同一个目录的
那么“bg.jpg”图片相对于“s1.htm” 文件的相对路径就是“bg.jpg”
那么在“s1.htm”文件里使用以下代码后,只要这两个文件的相对位置没有变(也就是说还是在同一个目录内),那么无论上传到Web服务器的哪个位置,在浏览器里都能正确地显示图片。
<body background="bg.jpg">
例2:子目录
假设“s1.htm”文件所在目录为“E:\book\网页布局\代码\第2章”,而“bg.jpg”图片所在目录为“E:\book\网页布局\代码\第2章\img”,
那么“bg.jpg”图片相对于“s1.htm”文件来说,是在其所在目录的“img”子目录里,则引用图片的语句应该为:
<body background="img/bg.jpg">
例3:上级目录
假设 “s1.htm”文件所在目录为“E:\book\网页布局\代码\第2章”,而“bg.jpg”图片所在目录为“E:\book\网页布局\代码”,
那么“bg.jpg”图片相对于“s1.htm”文件来说,是在其所在目录的上级目录里,则引用图片的语句应该为:
<body background="../bg.jpg">
例4:上级目录的子目录
假设“s1.htm”文件所在目录为“E:\book\网页布局\代码\第2章”,而“bg.jpg”图片所在目录为“E:\book\网页布局\代码\img”,
那么“bg.jpg”图片相对于“s1.htm”文件来说,是在其所在目录的上级目录里的“img”子目录里,则引用图片的语句应该为:
<body background="../img/bg.jpg">
注意:相对路径使用“/”字符作为目录的分隔字符,而绝对路径可以使用“\”或“/”字符作为目录的分隔字符。
在相对路径里常使用“../”来表示上一级目录。如果有多个上一级目录,可以使用多个“../”
(3) ~ 指向的位置:
~ 是指向主目录的一个很方便的快捷方式。
Windows 其实没有主目录的概念,因此 ~ 指向的是文档目录。
4. RStudio项目
将与项目相关的所有文件放在一起,其中包括输入数据、 R 脚本、分析结果以及图形。
(1)为每个数据分析任务创建 RStudio 项目。
“File → New Project → New Directory → New Project → 命名并 选择保存路径 → Creat Project”
(2)在项目中保存数据文件。
write_csv(diamonds, "diamonds.csv")
(3)在项目中保存脚本。保存Rstudio,并命名,如 diamonds.R
library(tidyverse)
ggplot(diamonds, aes(carat, price)) +
geom_hex()
ggsave("diamonds.pdf")
write_csv(diamonds, "diamonds.csv")
(4)在项目中保存输出(图形和清洁的数据)。
ggsave("diamonds.pdf")
(5)只使用相对路径,不要使用绝对路径。