数据攻略●R语言自述

简介: (注明:以下文章均在Linux操作系统下执行) 一、R语言简介 R语言是用于统计分析,图形表示和报告的编程语言和软件环境。R语言由Ross Ihaka和Robert Gentleman在新西兰奥克兰大学创建,目前由R语言开发核心团队开发。

 

(注明:以下文章均在Linux操作系统下执行)

一、R语言简介

R语言是用于统计分析,图形表示和报告的编程语言和软件环境。R语言由Ross Ihaka和Robert Gentleman在新西兰奥克兰大学创建,目前由R语言开发核心团队开发。

R语言的核心是解释计算机语言,其允许分支和循环以及使用函数的模块化编程。R语言允许与以C,C ++,.Net,Python或FORTRAN语言编写的过程集成以提高效率。

R语言在GNU通用公共许可证下免费提供,并为各种操作系统(如Linux,Windows和Mac)提供预编译的二进制版本。

R是一个在GNU风格的副本左侧的自由软件,GNU项目的官方部分叫做GNU S.

R的演变

R语言最初是由新西兰奥克兰奥克兰大学统计系的Ross Ihaka和Robert Gentleman写的。 R语言于1993年首次亮相。

一大群人通过发送代码和错误报告对R做出了贡献。

自1997年年中以来,已经有一个核心组(“R核心团队”)可以修改R源代码归档。

R的特点

如前所述,R语言是用于统计分析,图形表示和报告的编程语言和软件环境。 以下是R语言的重要特点:

R语言是一种开发良好,简单有效的编程语言,包括条件,循环,用户定义的递归函数以及输入和输出设施。

R语言具有有效的数据处理和存储设施,

R语言提供了一套用于数组,列表,向量和矩阵计算的运算符。

R语言为数据分析提供了大型,一致和集成的工具集合。

R语言提供直接在计算机上或在纸张上打印的图形设施用于数据分析和显示。

作为结论,R语言是世界上最广泛使用的统计编程语言。 它是数据科学家的第一选择,并由一个充满活力和有才华的贡献者社区支持。 R语言在大学教授并部署在关键业务应用程序中。 本教程将教您R编程与适当的例子在简单和容易的步骤。

 

二、R语言安装----Linux

#进入root权限

[root@local ~]# yum install epel-release

#安装R

[root@local ~]# yum install R

二、安装Rstudio

去官网下载一个https://www.rstudio.com/products/rstudio/download-server/

我的系统是Centos 7 64bit。

所以,我的是:

$ wget https://download2.rstudio.org/rstudio-server-rhel-0.99.893-x86_64.rpm
$ sudo yum install --nogpgcheck rstudio-server-rhel-0.99.893-x86_64.rpm

在浏览器中输入:localhost:8787,端口默认的是8787,你也可以自己改!然后输入Linux的登录名和密码。

 

三、R语言速写

1、R语言基本定义

R语言基本函数:https://www.douban.com/note/511740050/

R语言的定义变量有两种方式:“=”与“<-”.

>a = “hello”

>print(a)

[1] "hello"

> a <- 'hello world'

> print(a)

[1] "hello world"

注释:#My first R ,在R语言中不支持多行注释,但可以引用下面的格式:

If(FALSE){

" This is a

multi-line comment!"

}

>A = “HELLO”

>print (A)

2、数据类型

2.1、Logical(逻辑型)

逻辑型只有两个--- TRUE, FALSE

 >v <- TRUE

>print(class(v))

[1] "logical"

2.2、Numeric(数字)

 >v <-10.2

 >print(class(v))

 [1] "numeric"

2.3、Integer(整型)

 这里的整型代表着长整型-----L

>v <- 5L

>print(class(v))

[1] "integer"

2.4、Complex(复合型)

>v <- 2+5i

>print(class(v))

[1] "complex"

2.5、Character(字符)

 >v <- "my name is Zhu"

 >print (class(v))

 [1] "character"

2.6、Raw(原型)

 >v <- charToRaw("Hello")

>print(class(v))

[1] "raw"

2.7、Vectors 向量

当你想用多个元素创建向量时,你应该使用c()函数,这意味着将元素组合成一个向量。

 > a <- c('red','green','black')

 > print (a)

 [1] "red"   "green" "black"

 > print(class(a))

 [1] "character"

2.8、Lists 列表

列表是一个R对象,它可以在其中包含许多不同类型的元素,如向量,函数甚至其中的另一个列表。

 > listb <-list(c(2,3,4),22.5,'sin')

 > print(listb)

 [[1]]

 [1] 2 3 4

 [[2]]

 [1] 22.5

 [[3]]

 [1] "sin"

 > print(class(listb))

 [1] "list"

 > 

2.9、Matrices 矩阵

矩阵是二维矩形数据集。 它可以使用矩阵函数的向量输入创建。

 > M = matrix( c('a','a','b','c','b','a'), nrow = 2, ncol = 3, byrow = TRUE)

 > print (M)

 [,1] [,2] [,3]

 [1,] "a"  "a"  "b"

 [2,] "c"  "b"  "a"

 > M = matrix( c('a','a','b','c','b','a'), nrow = 2, ncol = 3, byrow = FALSE)

 > PRINT(M)

 Error in PRINT(M) : 没有"PRINT"这个函数

 > print(M)

  [,1] [,2] [,3]

 [1,] "a"  "b"  "b"

 [2,] "a"  "c"  "a"

 解释名词:nrow-->行、ncol-->列、byrow如果为TRUE则按行键入,为FALSE则按列键入。

2.10、Arrays 数组

虽然矩阵被限制为二维,但阵列可以具有任何数量的维度。 数组函数使用一个dim属性创建所需的维数。 在下面的例子中,我们创建了一个包含两个元素的数组,每个元素为3x3个矩阵。

 > a <- array(c('green','yellow'),dim = c(3,3,2))

 > print(a)

 , , 1

 [,1]     [,2]     [,3]   

 [1,] "green"  "yellow" "green"

 [2,] "yellow" "green"  "yellow"

 [3,] "green"  "yellow" "green"

 , , 2

 [,1]     [,2]     [,3]   

 [1,] "yellow" "green"  "yellow"

 [2,] "green"  "yellow" "green"

 [3,] "yellow" "green"  "yellow"

 dim函数可以创建多个形式的数组,所以剩下的可以自己尝试!

2.11、Factors 因子

因子是使用向量创建的r对象。它将向量与向量中元素的不同值一起存储为标签。标签总是字符,不管它在输入向量中是数字还是字符或布尔等。 它们在统计建模中非常有用。
使用factor()函数创建因子。nlevels函数给出级别计数。

 > a <-c('one','one','two','three','two')

 > factor_b<-(a)

 > factor_b<-factor(a)

 > print(factor_b)

 [1] one   one   two   three two 

 Levels: one three two

 > print(nlevels(factor_b))

 [1] 3

 > 

2.12、Data Frames 数据帧

数据帧是表格数据对象。 与数据帧中的矩阵不同,每列可以包含不同的数据模式。 第一列可以是数字,而第二列可以是字符,第三列可以是逻辑的。 它是等长度的向量的列表。
使用data.frame()函数创建数据帧。

 > Students <- data.frame(

 +  name = c("James","Boby","Jem"),

 +  sex = c("男","男","女"),

 +  age = c(23,24,20)

 + )

 > print(Students)

 name sex age

 1 James  男  23

 2  Boby  男  24

 3   Jem  女  20

 > 

3、变量

变量为我们提供了我们的程序可以操作的命名存储。 R语言中的变量可以存储原子向量,原子向量组或许多Robject的组合。 有效的变量名称由字母,数字和点或下划线字符组成。 变量名以字母或不以数字后跟的点开头。

3.1、变量赋值

可以使用向左,向右和等于运算符来为变量分配值。 可以使用print()或cat()函数打印变量的值。 cat()函数将多个项目组合成连续打印输出。

# Assignment using equal operator.

var.1 = c(0,1,2,3)           

 # Assignment using leftward operator.

var.2 <- c("learn","R")  

 # Assignment using rightward operator.  

c(TRUE,1) -> var.3

cat ("var.1 is ", var.1 ,"")

[1] 0 1 2 3

var.1 is  0 1 2 3

var.2 is  learn R

var.3 is  1 1

3.2、变量的数据类型

在R语言中,变量本身没有声明任何数据类型,而是获取分配给它的R - 对象的数据类型。 所以R称为动态类型语言,这意味着我们可以在程序中使用同一个变量时,一次又一次地更改变量的数据类型。

3.3、查找变量

要知道工作空间中当前可用的所有变量,我们使用ls()函数。 ls()函数也可以使用模式来匹配变量名。

> print(ls())

[1] "BMI"      "Students" "var_x"    "var.3"  

以点(.)开头的变量被隐藏,它们可以使用ls()函数的“all.names = TRUE”参数列出。

3.4、删除变量

可以使用rm()函数删除变量。 下面我们删除变量var.3。 打印时,抛出变量错误的值。

> rm(var.3)

> print(var.3)

Error in print(var.3) : 找不到对象'var.3'

4、运算符

运算符是一个符号,通知编译器执行特定的数学或逻辑操作。 R语言具有丰富的内置运算符,并提供以下类型的运算符。

运算符的类型

R语言中拥有如下几种运算符类型:

  • 算术运算符
  • 关系运算符
  • 逻辑运算符
  • 赋值运算符
  • 其他运算符

4.1、算数运算符

正常的算数运算符 +、-、*、/ 与其他语言中无异,但在R语言中存在向量,所以算数运算符也会应用到向量中。关系运算符与逻辑运算符同上。

4.2、赋值运算符

R语言中的赋值存在左、右赋值。

<- or <<- or = :为左分配。

->or ->> :为右分配。

4.3、其他运算符

“:”运算符,冒号运算符,它为向量按顺序创建一系列数字。

> v = c(2:8)

> print(v)

[1] 2 3 4 5 6 7 8

“%in%“ ,此运算符用于标记元素是否属于向量。

>v1 <- 8

>v2 <- 12

>t <- 1:10

>print(v1 %in% t)

>print(v2 %in% t)

TRUE

FALSE

“%*%”,此运算符用于将矩阵与其转置相乘

M = matrix( c(2,6,5,1,10,4), nrow = 2,ncol = 3,byrow = TRUE)

t = M %*% t(M)

print(t)

它产生以下结果 -

      [,1] [,2]

[1,]   65   82

[2,]   82  117

5、决策

R语言中的决策也就是我们所认知的if….else….

5.1、If 语句

> x <- 30L

> if(is.integer(x)) {

+    print("X is an Integer")

+ }

[1] "X is an Integer"

5.2、if….else….语句

If….else…同理Java中的。

5.3、switch语句

switch语句允许根据值列表测试变量的相等性。 每个值都称为大小写,并且针对每种情况检查打开的变量。

> x <- switch(

+   3,

+ 'onr',

+ 'toe',

+ 'dasd'

+ )

> print(x)

[1] "dasd"

6、包

R语言的包是R函数,编译代码和样本数据的集合。 它们存储在R语言环境中名为“library”的目录下。 默认情况下,R语言在安装期间安装一组软件包。 随后添加更多包,当它们用于某些特定目的时。 当我们启动R语言控制台时,默认情况下只有默认包可用。 已经安装的其他软件包必须显式加载以供将要使用它们的R语言程序使用。

7、循环

7.1、repeat循环

多次执行一系列语句,并简化管理循环变量的代码。

v <- c("Hello","你好")

cnt <- 2

repeat {

  print(v)

  cnt <- cnt+1

 

  if(cnt > 5) {

    break

  }

}

结果:

[1] "Hello" "你好"

[1] "Hello" "你好"

[1] "Hello" "你好"

[1] "Hello" "你好"

R语言的repeat循环是先进行执行语句在判断条件,直至条件为false,跳出循环体。

7.2、R语言 While循环

在给定条件为真时,重复语句或语句组。它在执行循环体之前测试条件。While循环一次又一次地执行相同的代码,直到满足停止条件。

while循环的关键点是循环可能永远不会运行。当条件被测试并且结果为false时,循环体将被跳过,while循环之后的第一条语句将被执行。

v <- c("Hello","while loop")

cnt <- 2

while (cnt < 7) {

  print(v)

  cnt = cnt + 1

}

While循环的顺序则为先判断条件,后进行循环体内的执行语句,它的关键点就是如果条件结果为false,则执行语句不会成功,循环体跳出!

7.3、R语言 For循环

像while语句,不同之处在于它测试在循环体的端部的条件。For循环是一种重复控制结构,允许您有效地编写需要执行特定次数的循环。

v <- LETTERS[1:4]

for ( i in v) {

  print(i)

}

[1] "A"

[1] "B"

[1] "C"

[1] "D"

7.4、循环控制语句

循环控制语句从其正常序列改变执行。 当执行离开作用域时,在该作用域中创建的所有自动对象都将被销毁。

break语句

终止循环语句,并将执行转移到循环后立即执行的语句。

next语句

next语句模拟R语言switch语句的行为。R语言存在next语句,当我们想跳过循环的当前迭代而不终止它时便可使用next。 遇到next时,R解析器跳过本次迭代,并开始循环的下一次迭代。

v = LETTERS[1:6]

for(i in v){

  if(i == "D"){

    next

  }

  print(i)

}

未完待续.....。更多内容在QQ群(607021567)内有分享。

Welcome to Python world! I have a contract in this world! How about you?
相关文章
|
2月前
|
数据采集 机器学习/深度学习 数据可视化
R语言从数据到决策:R语言在商业分析中的实践
【9月更文挑战第1天】R语言在商业分析中的应用广泛而深入,从数据收集、预处理、分析到预测模型构建和决策支持,R语言都提供了强大的工具和功能。通过学习和掌握R语言在商业分析中的实践应用,我们可以更好地利用数据驱动企业决策,提升企业的竞争力和盈利能力。未来,随着大数据和人工智能技术的不断发展,R语言在商业分析领域的应用将更加广泛和深入,为企业带来更多的机遇和挑战。
|
3月前
|
存储 数据采集 数据处理
R语言数据变换:使用tidyr包进行高效数据整形的探索
【8月更文挑战第29天】`tidyr`包为R语言的数据整形提供了强大的工具。通过`pivot_longer()`、`pivot_wider()`、`separate()`和`unite()`等函数,我们可以轻松地将数据从一种格式转换为另一种格式,以满足不同的分析需求。掌握这些函数的使用,将大大提高我们处理和分析数据的效率。
|
2月前
R语言基于表格文件的数据绘制具有多个系列的柱状图与直方图
【9月更文挑战第9天】在R语言中,利用`ggplot2`包可绘制多系列柱状图与直方图。首先读取数据文件`data.csv`,加载`ggplot2`包后,使用`ggplot`函数指定轴与填充颜色,并通过`geom_bar`或`geom_histogram`绘图。参数如`stat`, `position`, `alpha`等可根据需要调整,实现不同系列的图表展示。
|
2月前
|
数据采集 数据可视化 数据挖掘
R语言在金融数据分析中的深度应用:探索数据背后的市场智慧
【9月更文挑战第1天】R语言在金融数据分析中展现出了强大的功能和广泛的应用前景。通过丰富的数据处理函数、强大的统计分析功能和优秀的可视化效果,R语言能够帮助金融机构深入挖掘数据价值,洞察市场动态。未来,随着金融数据的不断积累和技术的不断进步,R语言在金融数据分析中的应用将更加广泛和深入。
|
3月前
|
数据采集 机器学习/深度学习 数据挖掘
R语言数据清洗:高效处理缺失值与重复数据的策略
【8月更文挑战第29天】处理缺失值和重复数据是数据清洗中的基础而重要的步骤。在R语言中,我们拥有多种工具和方法来有效地应对这些问题。通过识别、删除或插补缺失值,以及删除重复数据,我们可以提高数据集的质量和可靠性,为后续的数据分析和建模工作打下坚实的基础。 需要注意的是,处理缺失值和重复数据时,我们应根据实际情况和数据特性选择合适的方法,并在处理过程中保持谨慎,以避免引入新的偏差或错误。
|
3月前
|
数据采集 存储 数据可视化
R语言时间序列分析:处理与建模时间序列数据的深度探索
【8月更文挑战第31天】R语言作为一款功能强大的数据分析工具,为处理时间序列数据提供了丰富的函数和包。从数据读取、预处理、建模到可视化,R语言都提供了灵活且强大的解决方案。然而,时间序列数据的处理和分析是一个复杂的过程,需要结合具体的应用场景和需求来选择合适的方法和模型。希望本文能为读者在R语言中进行时间序列分析提供一些有益的参考和启示。
|
3月前
|
数据处理
R语言数据合并:掌握`merge`与`dplyr`中`join`的巧妙技巧
【8月更文挑战第29天】如果你已经在使用`dplyr`进行数据处理,那么推荐使用`dplyr::join`进行数据合并,因为它与`dplyr`的其他函数(如`filter()`、`select()`、`mutate()`等)无缝集成,能够提供更加流畅和一致的数据处理体验。如果你的代码中尚未使用`dplyr`,但想要尝试,那么`dplyr::join`将是一个很好的起点。
|
6月前
|
数据采集 数据可视化
利用R语言进行因子分析实战(数据+代码+可视化+详细分析)
利用R语言进行因子分析实战(数据+代码+可视化+详细分析)
|
6月前
|
Web App开发 数据可视化 数据挖掘
利用R语言进行聚类分析实战(数据+代码+可视化+详细分析)
利用R语言进行聚类分析实战(数据+代码+可视化+详细分析)
|
6月前
|
移动开发 数据可视化
广义线性模型beta二项分布的淋巴结疾病风险预测可视化R语言2实例合集|附数据代码
广义线性模型beta二项分布的淋巴结疾病风险预测可视化R语言2实例合集|附数据代码
下一篇
无影云桌面