• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

数据攻略●R语言自述

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

 

(注明:以下文章均在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

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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
协同过滤的R语言实现及改进发布时间:2022-07-18
下一篇:
R语言S3类的理解与构建发布时间:2022-07-18
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap