vlambda博客
学习文章列表

露哥的摸爬滚打|R语言入门





说在前面



新的领域,关于R语言的学习,

这是本人的学习笔记,

也是对自己的监督,

参考书籍:《R语言实战(第2版)》,

Let's begin!





简介






本文主要是对R语言初步了解,包括R的介绍、包的安装,不同数据集的创建等内容。

废话不多说,看就完事了!





为啥使用R








基于我对R的了解,R有以下优点:

1、它free。

2、制图功能强大

3、数据分析技术强大

4、听说代码简单

5、待补充







走入R








一个R会话示例


> age<- c(1,2)> weight <- c(122,133)> mean(weight)[1] 127.5> sd(weight)[1] 7.778175> plot(age,weight)


这是系统定义的图形,不够美观哈哈哈。如果想大概了解R能够做出何种图形,在命令行中运行demo()即可。

注意:R语句由函数和赋值构成。R使用<-,而不是传统的=作为赋值符号。

露哥的摸爬滚打|R语言入门

demo(package = .packages(all.available = TRUE))可列出所有*可用*包中的演示。




获取帮助


R提供了大量的帮助功能,学会如何使用这些帮助文档可以在相当程度上助力你的编程工作。

露哥的摸爬滚打|R语言入门



工作空间


工作空间(workspace)就是当前R的工作环境,它存储着所有用户定义的对象(向量、矩阵、函数、数据框、列表)。

露哥的摸爬滚打|R语言入门

注意:setwd()命令的路径中使用了正斜杠“/”。




输入与输出


1、输入

函数source("filename")可在当前会话中执行一个脚本。

2、输出

函数sink("filename")将输出重定向到文件filename中。默认情况下,如果文件已经存在,则它的内容将被覆盖。使用参数append=TRUE可以将文本追加到文件后,而不是覆盖它。参数split=TRUE可将输出同时发送到屏幕和输出文件中。不加参数调用命令sink()将仅向屏幕返回输出结果。

3、图形输出

要重定向图形输出,使用下表中列出的函数即可。最后使用dev.off()将输出返回到终端。

露哥的摸爬滚打|R语言入门

4、流程图

露哥的摸爬滚打|R语言入门



啥是包





露哥的摸爬滚打|R语言入门

包是R函数、数据、预编译代码以一种定义完善的格式组成的集合。计算机上存储包的目录称为库(library)。

函数.libPaths()能够显示库所在的位置,函数library()则可以显示库中有哪些包。命令search()可以告诉你哪些包已加载并可使用。




包的sao操作


露哥的摸爬滚打|R语言入门

安装包:install.packages()

示例:install.packages("gclus"),不要忘记引号哦!

更新包:update.packages()

查看包:installed. packages()

载入包:library()

帮助包:help(package="package_name")





创建数据集








数据结构


露哥的摸爬滚打|R语言入门

1、向量

> a <- c(1,2,3,4,5)> a[1] 1 2 3 4 5> b<-c("黑黑","哈哈","露哥")> b[1] "黑黑" "哈哈" "露哥"

注:单个向量中的数据必须拥有相同的类型或模式(数值型、字符型或逻辑型)

2、矩阵

myymatrix < - matrix ( vector,nrow=number_of_rows,ncol=number_ of_columns,byrow=logical_value, dimnames=list(char_vector_rownames,

char_vector_colnames))

> y<-matrix(1:6,nrow=2,ncol=3)> y [,1] [,2] [,3][1,] 1 3 5[2,] 2 4 6> cells <- c(177,180,182,188)> > rnames <- c("露哥","黑黑")> cnames <- c("2019","2020")>mymatrix<matrix(cells,nrow=2,ncol=2,byrow=TRUE,dimnames=list(rnames,cnames))> mymatrix

     2019 2020

露哥  177  180

黑黑  182  188

3、数组

myarray<-  array(vector,dimensions,dimnames)

> dim1 <- c("a1","a2")> dim2 <- c("b1","b2")> dim3 <- c("c1","c2","c3")> myarray <- array(1:12,c(2,2,3),dimnames=list(dim1,dim2,dim3))> myarray

, , c1


   b1 b2

a1  1  3

a2  2  4


, , c2


   b1 b2

a1  5  7

a2  6  8


, , c3


   b1 b2

a1  9 11

a2 10 12

4、数据框

数据框可通过函数data.frame()创建:

mydata<-data.frame(col1,col2,col3,col4...)

> a <- c(1,2,3)> b<-c("黑黑","哈哈","露哥")> c <- c(TRUE,FALSE)> c <- c(TRUE,FALSE,TRUE)> mydata <- data.frame(a,b,c)> mydata


  a    b     c
1 1 黑黑  TRUE
2 2 哈哈 FALSE
3 3 露哥  TRUE

> mydata$b[1] "黑黑" "哈哈" "露哥"> table(mydata$b,mydata$c)

       FALSE TRUE

  哈哈     1    0

  黑黑     0    1

  露哥     0    1

5、列表

mylist <- list(object1,object2,object3...)

mylist<-list(name1=object1,name2=object2,name3=object3...)

> g <- "哈哈哈哈哈"> a <- c(1,2,3,4,5)> b<-c("黑黑","哈哈","露哥")> c <- c(TRUE,FALSE)> mylist <- list(title=g,messages=a,b,c)> mylist

$title

[1] "哈哈哈哈哈"


$messages

[1] 1 2 3 4 5


[[3]]

[1] "黑黑" "哈哈" "露哥"


[[4]]

[1]  TRUE FALSE




数据的输入


可供R导入的数据源

露哥的摸爬滚打|R语言入门

1、手动输入数据

mydata<-data.frame(age=numeric(0),gender=character (0),weight=numeric(0))mydata <- edit(mydata)


露哥的摸爬滚打|R语言入门

2、从带分隔符的文本文件导入数据

使用read.table()从带分隔符的文本文件中导入数据。

mydataframe <- read.table(file,options)

露哥的摸爬滚打|R语言入门

3、导入Excel数据

read.xlsx(file, n)




函数


露哥的摸爬滚打|R语言入门

最后

我决定在每个结尾加一个彩蛋,分享快乐!

露哥的摸爬滚打|R语言入门
露哥的摸爬滚打|R语言入门

下一期预告|基本数据处理

somylu

2020.8.21


往期推荐




+  



扫二维码|点赞+在看




一起等风来