《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)只使用相对路径,不要使用绝对路径。

(0)

相关推荐