LizierTowardsDataScience
译者:Vihar Kurama
电脑之心校对
参予:刘晓坤、许迪
R 词汇是紧密结合了 S 程式设计词汇的分布式系统,可用作同时实现对统计数据的程式设计;它有很强悍的值预测辅助工具,对处置数学预测、方程和乱数学的难题十分管用。透过一连串内建函数和库,你能用 R 词汇自学统计数据建模,不光是它除了许多绘图后端。责任编辑将单纯如是说 R 词汇的程式设计此基础,带你逐渐同时实现第二个建模事例。
标识符门牌号:https://github.com/aaqil/r-lang-fundamentals
R 词汇前段时间才刚保有了 TensorFlow USB,现阶段最合适的 R 词汇版是 R Studio。在自学以后,你须要介绍呵呵 R 词汇这类。
为何要自学 R 词汇?
R 很灵活;R 很强悍;R 不仅是个统计计算辅助工具包,它还是一门程式设计词汇;R 能针对难题的形式设计程序;R 能高效地处置和存储统计数据。
R 词汇的代码通用性较好,微调任务后只须要再微调标识符就能直接应用。
R 安装
选择你喜欢的 CRAN 镜像进行安装:https://cran.r-project.org/mirrors.html
R Studio
R Studio 是很高效的版,它包括一个标识符编辑器、调试和建模辅助工具。它是一个集成开发环境,包括一个控制台、支持直接标识符执行的语法高亮显示编辑器,以及绘图、历史查询、调试和工作区管理的辅助工具。
R Studio 下载门牌号:https://www.rstudio.com/products/rstud
R Studio 快照
交互使用 R 词汇
成功安装 R 词汇之后,在终端或 shell 里点击「R」开启交互式 shell。
你能将 R shell 当成计算器使用,执行单纯的数学,甚至高级的电脑自学算法。
执行以下命令退出 R 程序:
> q()
你能点击「y」保存工作区会话,如果直接点击「n」,则不保存直接返回终端/shell。
我们从在 R 交互式 shell 中输出「Hello World!」开始自学。
在 R 中我们使用 print() 函数返回参数中给定的字符串:
$R> print(“Hello World!”)[1] “Hello World!”>
R 词汇的命令
R 词汇支持命令,而这些命令会被解释器忽略。
以下是一些 R 词汇的命令的例子:
# This is a comment in R# print(“This doesnt work”)
变量
R 词汇的变量能保存一个原子向量(atomic vector)、一组原子向量或多个 R 对象的组合。R 词汇的命名区分大小写。在为统计数据结构命名的时候,我们须要遵循以下规则:
以. 起始的命名是系统命名,并且使用 ls() 函数时这些命名不总是可见。
a <- 3
上面的标识符声明了一个变量「a」并分配了值 3。
typeof() 函数返回变量的统计数据类型。
type(a)[1] “double”
R 词汇的统计数据类型
numeric(实数或十进制数):十进制值在 R 词汇中被称为 numeric,是默认的计算统计数据类型。
此外还包括 integer(整数)、charater(字符串)、logical(逻辑值)、complex(复数)等,以下是这些统计数据类型的定义标识符示例:
a <- 3 # Numericalprint(a)typeof(a)name <- “Stark”# Characterprint(name)typeof(name)holiday <- TRUE# Logicalprint(holiday)typeof(holiday)distance <- 1 + 4i# Complexprint(distance)typeof(distance)
使用命令「Rscript filename.R」在 shell 上执行 R 文件。
[1] 3[1] “double”[1] “Stark”[1] “character”[1] TRUE[1] “logical”[1] 1+4i[1] “complex”
注意:R 词汇的字符串是 Character 类型的。
算术运算
R 词汇能执行所有基本的算术运算,例如加、减、乘、除等。
# Additionsum = 4+2 print(sum)# Subtractiondiff = 6-5 print(diff)# Multiplicationproduct = 7*45 print(product)# Divisiondiv = 50/6 print(div)# Remainderrem = 3%%8 print(rem)# Quotient.q = 5%/%3 print(q)# Power power = 5^3print(power)
[1] 6[1] 1[1] 315[1] 8.333333[1] 3[1] 1[1] 125
R 词汇中的统计数据结构
原子向量
在 R 词汇中,向量是最常用的统计数据结构。向量是相同类型的统计数据元素的序列。向量成员的正式名称是成分(component)。向量的元素的统计数据类型能是 character、logical、integer 或 numeric。
我们使用 vector() 函数创建一个空向量,以下标识符展示了如何声明一个向量:
x <- vector()> character(5)[1] “” “” “” “” “”
列表
R 词汇的列表作为容器,是包含其它对象的通用向量。和原子向量不同,列表中的变量不局限于单一的统计数据类型,能包含任意的统计数据类型的混合。一个列表能包含其它列表。
R 词汇中的列表能用 list() 函数创建。
my_list <- list(“Red”, TRUE, 51.23)
list_1 <- list(“Red”, TRUE, 51.23)print(list_1)# Merging the listslist_2 <- list(1,2,3)list_3 <- list(“Sun”,”Mon”,”Tue”)# Merge the two listsmerged.list <- c(list_2,list_3)# Print the merged list.print(merged.list)
[1] “Red”[[2]][1] TRUE[[3]][1] 51.23[[1]][1] 1[[2]][1] 2[[3]][1] 3[[4]][1] “Sun”[[5]][1] “Mon”[[6]][1] “Tue”
矩阵
在 R 词汇中,矩阵是一种特殊类型的向量。矩阵是统计数据元素以二维矩形排布的集合,矩阵有行和列。
现在我们创建一个 2×2 矩阵,使用 matrix 函数并以行和列作为参数。行数以 nrow 表示,列数以 ncol 表示。
my_matrix <- matrix(nrow = 2, ncol = 2)
my_martix <- matrix(nrow = 8, ncol = 4)# It creates a matrix with 8 rows and 4 cloumns.# But initially they all are empty(NA).# These are used to enter the data into the matrix.# Here c() function is used to concatenate the data.# In the below example the data is filled by column wise.my_martix[, 1] <- c(59, 55, 53.5, 55, 52.5, 57.5, 53, 55)my_martix[, 2] <- c(22.3, 19.7, 20.8, 20.3, 20.8, 21.5,20.6, 21.5)my_martix[, 3] <- c(31.2, 30.4, 30.6, 30.3, 30.3, 30.8,32.5,34)my_martix[, 4] <- c(9.5, 13.8, 14.8, 15.2, 15.5, 15.6,15.6, 15.7)print(my_martix)
[,1] [,2] [,3] [,4][1,] 59.0 22.3 31.2 9.5[2,] 55.0 19.7 30.4 13.8[3,] 53.5 20.8 30.6 14.8[4,] 55.0 20.3 30.3 15.2[5,] 52.5 20.8 30.3 15.5[6,] 57.5 21.5 30.8 15.6[7,] 53.0 20.6 32.5 15.6[8,] 55.0 21.5 34.0 15.7
统计数据帧(data frame)
统计数据帧是 R 词汇里最常用的统计数据结构之一。统计数据是由带有行和列的统计数据表格表示的。
我们通常在统计数据帧里读取一个 csv 文件,使用 read.csv() 或 read.table() 函数,然后把 csv 文件的名字作为参数输入函数里来同时实现的。
我们也能用 data.frame() 函数来创建一个统计数据帧。
> df <- data.frame(id = letters[1:5], x = 1:10, y = rnorm(10))> df> ## id x y> ## 1 a 1 -1.37593> ## 2 b 2 0.47094> ## 3 c 3 -0.16046> ## 4 d 4 -1.36914> ## 5 e 5 0.39763
这里有几个重要的函数,应用到统计数据帧得出其结构信息等。
head() 用来看前 6 行tail() 用来看后 6 行dim() 用来看维度nrow() 行的数量ncol() 列的数量str() 每一列的结构
因子(factor)
因子是带标签的整数。因子看起来像字符矢量,但实际上是整数,当你把它们当成字符来对待时,须要不光谨慎。一些字符处置方法会强制把因子转换成字符,而其他的字符处置方法会报错。
因子能用 factor() 函数创建。输入一般是字符矢量。
> x <- factor(c(“yes”, “no”, “no”, “yes”, “yes”))> x[1] yes no no yes yesLevels: no yes# table(x) will return a frequency table.
控制结构
以下是控制函数的脚本执行流程的常用结构,包括:
1. if, else
2. for
3. while
4. repeat
5. break
if-else
我们经常须要能检查一个程序的状态和改变这个程序的行为的功能。条件语句能提供这样的功能,最单纯的形式是 if 语句。
if (condition) { # do something} else { # do something else}
例子
x <- 1:15if (sample(x, 1) <= 10) { print(“x is less than 10”)} else { print(“x is greater than 10”)}
for 循环
R 词汇里的 for 循环能在任何列表或矢量中执行。
for (i in 1:5) { print(i)}
上述标识符是在 R 词汇里声明 for 循环的例子,for 循环让循环变量 i 在给定的范围内迭代。
12345
几种同时实现 for 循环的方法。
x <- c(“apples”, “oranges”, “bananas”, “strawberries”)# Prints the list items with the index.for (i in x) { print(x[i])}for (i in 1:4) { print(x[i])}for (i in seq(x)) { print(x[i])}# Inlinefor (i in 1:4) print(x[i])
[1] NA[1] NA[1] NA[1] NA[1] “apples”[1] “oranges”[1] “bananas”[1] “strawberries”[1] “apples”[1] “oranges”[1] “bananas”[1] “strawberries”[1] “apples”[1] “oranges”[1] “bananas”[1] “strawberries”
while
一个 R 词汇里的 while 循环会反复的执行目标语句,只要给定的条件一直是真。不像 for 循环,while 循环不会确定循环次数,而会一直跑直到条件不满足。
while 循环句法
while(condition){ statements iteration}
这是一个例子,我们同时实现一个单纯的 while 循环。
i <- 1while (i < 5) { print(i) i <- i + 1}
12345
repeat 和 break
一个 repeat 循环是用来反复执行一段标识符的,其中没有检查条件然后退出的机制。
repeat 和 break 的句法
repeat{ condition statements break}
现在,让我们用 repeat 和 break 来输出前五个数字。
x <- 1repeat { print(x) x = x+1 if (x == 6){ break }}
[1] 1[1] 2[1] 3[1] 4[1] 5
函数
在任何程式设计词汇中函数的主要作用就是可复用性。函数是一连串声明的组合以执行特殊的任务。在 R 词汇里有许多内建的函数,例如 sum()、min()、max()、mean() 等。
R 词汇中声明函数的句法
function_name <- function(arg_1, arg_2, …) { function body }
现在让我们创建一个函数来输出一连串的数字。
my_function <- function(a) { for(i in 1:a) { b <- i^3 print(b) }} # Now call the function supplying 6 as an argumentmy_function(6)
216
R 词汇里的建模
统计数据建模是对决策至关重要的参考。R 词汇为了创建统计数据储存和可视化儿提供了最合适的内置函数和库。
现在,让我们用 R Studio 里的 ggplot2 来创建一个单纯的线图,我们须要安装 ggplot2 包,你会在左角找到控制台,执行命令安装包(「package_name」):
> install.packages(“ggplot2”)
我们现在导入一个内置的统计数据集(mpg),然后画一个单纯的图。
关于 mpg 统计数据集:这是一个关于燃料经济的统计数据集,包含了从 1999 年到 2008 年 38 种流行车款的统计数据。
1. 一个 234 行和 11 个变量的统计数据帧;
2. displ-发动机排量,以升为单位;
3. hwy-高速公路耗油量,英里每加仑。
library(ggplot2)# Plots mpg datasets with Xaxis – displ and Yaxis – hwy# We can also specify the color pallete by sending the colour argument.ggplot(mpg, aes(displ, hwy, colour = class)) + geom_point()
原文链接:https://towardsdatascience.com/r-lang-zero-to-hero-c59a9f66841c
责任编辑为电脑之心校对,。