怎样才能学好电脑的R语言?

Python012

怎样才能学好电脑的R语言?,第1张

R语言快速入门:数据结构+生成数据+数据引用+读取外部数据

查看完整文档可至百度网盘:

链接: https://pan.baidu.com/s/1cEdmpO5idfxx044TpqVBuA

 

提取码: bi3t

R是用于统计分析、绘图的语言和操作环境。R是属于GNU系统的一个自由、免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具。常被用于统计学、计量分析等领域。接下来讲一下我个人认为的R入门知识。

目录

1 数据结构

1.1 向量

1.2 矩阵

1.3 数据框

2 生成数据

2.1 c() 连接单个数据

2.2 ":" 生成1/-1等差向量

2.3 seq() 生成等距向量

2.4 rep() 生成重复数据

3 数据引用

3.1 引用行/引用列

3.2 引用单个元素

3.3 引用子矩阵

3.4 变量名引用

4 读取外部数据(表)

4.1 更改工作目录

4.2 read.table

4.3 read.csv

正文 1 数据结构

本节主要讲向量、矩阵、数据框三种数据结构(入门必须学)

1.1 向量

用于存储数值型、字符型或逻辑型数据的一维数组,常用"c()"创建。例如:

> c(1,2,8)#生成包含1,2,8的一维数组(向量)

[1] 1 2 8

1.2 矩阵

二维数组具有行列的概念

#矩阵用法

matrix(data = NA, nrow = 1, ncol = 1, byrow = FALSE,dimnames = NULL) #表示生成1行,1列的一个矩阵,其中仅仅包含一个元素“NA” #---示例---#

> matrix(c(1,2,3, 11,12,13), nrow = 2, ncol = 3, byrow = TRUE, dimnames = list(c("row1", "row2"), c("C.1", "C.2", "C.3")))

     C.1 C.2 C.3

row1   1   2   3

row2  11  12  13

#nrow = 2和ncol = 3 定义2x3的2行3列矩阵

#byrow = TRUE 是控制矩阵中的数据c(1,2,3, 11,12,13)按照行的顺序排列,默认按照列排列

#dimnames = list(c("row1", "row2"), c("C.1", "C.2", "C.3")) 定义矩阵行名和列名

1.3 数据框

主要用于向量/矩阵合并,可以将不通类型的以向量以及矩阵,按照一定结构存储在数据框中。

> x <- c(11:20)  #其中" <- "是赋值的意思,将向量c(11:20)赋值给对象x

> y <- c(1:10)

> data.frame(xf = x, yf = x) #将向量x和y合并存储到数据框中,并重命名为xf和yf

   xf yf

1  11 11

2  12 12

3  13 13

4  14 14

5  15 15

6  16 16

7  17 17

8  18 18

9  19 19

10 20 20

数组与矩阵类似,但其维度大于2.由于R入门基本接触不到3维以上数组的概念,目前暂不展开,等入门后在反过来看。

2 生成数据

本节主要讲“c()”、":"、seq、rep等四种数据生成的内容(入门必须学)

2.1 “c”  连接单个数据

> c(1,2,8)#生成包含1,2,8的向量

2.2 “:“ 生成1/-1等差向量

> 1.1:10

[1] 1.1 2.1 3.1 4.1 5.1 6.1 7.1 8.1 9.1

> 1:10

 [1]  1  2  3  4  5  6  7  8  9 10

> 10:1 #如x=1:10(递减,如y=10:1)

 [1] 10  9  8  7  6  5  4  3  2  1

2.3 seq 生成等距向量

①seq(起点,终点,步长) 

②seq(length=9, from=1, to=5)

> seq(1,10,2)

[1] 1 3 5 7 9

> seq(length=5,1,10)

[1]  1.00  3.25  5.50  7.75 10.00

#seq(x)相当于1:length(x);length(x)为0时,返回integer(0)

> seq(10)

 [1]  1  2  3  4  5  6  7  8  9 10

> seq(c())

integer(0)

2.4 rep(x,n)   重复 

将x重复n次,可使用each限定为依次重复形式

rep(1:3,3)

rep(1:3,each=3)

#> rep(1:3,3)

#[1] 1 2 3 1 2 3 1 2 3

#> rep(1:3,each = 3)

#[1] 1 1 1 2 2 2 3 3 3

额外补充:R语言|第2讲:生成数据

3 数据引用(以矩阵为例)

数据引用必须懂“对指定维度数据的引用”(以二维矩阵为例)

3.1 行引用/列引用

例如:引用第一行数据,引用第一列数据,引用第一行第一列的数据。

> data(iris) #鸢尾花数据集> dim(iris) #读取iris数据集的维度数值,以“行数 列数 ”形式展示[1] 150   5   #说明iris数据集是150 x 5的二维数组

3.2 行列值引用:数据集[行值,列值]

如行值或列值仅1个数字,表示仅引用该行或列的数据

> iris[1,]  #引用第1行数据

  Sepal.Length Sepal.Width Petal.Length Petal.Width Species

1          5.1         3.5          1.4         0.2  setosa

> head(iris[,1],5) #引用第1列的数据,其中因数据过长,使用head()函数取前5个数字

[1] 5.1 4.9 4.7 4.6 5.0

3.3 引用子矩阵

如行值或列值为组合数据,则表示引用组合行列交叉位置的数据

> iris[1:5,1:3]

  Sepal.Length Sepal.Width Petal.Length

1          5.1         3.5          1.4

2          4.9         3.0          1.4

3          4.7         3.2          1.3

4          4.6         3.1          1.5

5          5.0         3.6          1.4

3.4 变量名引用

(多用于二维数组中):数据集$变量名

> head(iris$Petal.Length,5)

[1] 1.4 1.4 1.3 1.5 1.4 4 读取外部数据(以.csv表为例)

本节主要讲如何读取外部数据(表)(以.csv表为例)

4.1 设置工作目录

R语言中数据的输入需要设置数据读取的路径,一般将数据文件放到工作目录下,这样直接就可以通过read.table等读取数据文档(不许要设置路径)。

setwd("E:/")  #设置当前工作目录为"E:/"

getwd()  #读取当前工作空间的工作目录(文件读取保存路径)

> getwd()  #读取当前工作空间的工作目录(文件读取保存路径)

[1] "C:/Users/ysl/Documents"

> setwd("E:/") #设置当前工作目录为"E:/"

> getwd() #再次使用getwd()函数即可查看是否设置成功

[1] "E:/"

方法二:通过R-gui菜单栏设置(文件-改变工作目录)

4.2 read.table() 

#读取带分隔符的文本文件。read.table()函数是R最基本函数之一,读取带分隔符的文本/表格文件。

#Usage

read.table(file, header = FALSE, sep = "", quote = "\"'",

           dec = ".", numerals = c("allow.loss", "warn.loss", "no.loss"),

           row.names, col.names, as.is = !stringsAsFactors,

           na.strings = "NA", colClasses = NA, nrows = -1,

           skip = 0, check.names = TRUE, fill = !blank.lines.skip,

           strip.white = FALSE, blank.lines.skip = TRUE,

           comment.char = "#",

           allowEscapes = FALSE, flush = FALSE,

           stringsAsFactors = default.stringsAsFactors(),

           fileEncoding = "", encoding = "unknown", text, skipNul = FALSE)

read.csv(file, header = TRUE, sep = ",", quote = "\"",

dec = ".", fill = TRUE, comment.char = "", ...)

read.csv2(file, header = TRUE, sep = "", quote = "\"",

dec = ",", fill = TRUE, comment.char = "", ...)

read.delim(file, header = TRUE, sep = "\t", quote = "\"",

dec = ".", fill = TRUE, comment.char = "", ...)

read.delim2(file, header = TRUE, sep = "\t", quote = "\"",

            dec = ",", fill = TRUE, comment.char = "", ...)

常用参数的说明如下:

(1)file:file是一个带分隔符的ASCII文本文件。①绝对路径或者相对路径。一定要注意,在R语言中\是转义符,所以路径分隔符需要写成"\\"或者“/”。所以写成“C:\\myfile\\myfile.txt”或者“C:/myfile/myfile.txt”即可。②使用file.choose(),弹出对话框,自动选择文件位置。例如:read.table(file.choose(),...)。

(2)header:一个表示文件是否在第一行包含了变量的逻辑型变量。如果header设置为TRUE,则要求第一行要比数据列的数量少一列。

(3)sep分开数据的分隔符。默认sep=""。read.table()函数可以将1个或多个空格、tab制表符、换行符或回车符作为分隔符。常见空白分隔符有:空格,制表符,换行符

sep=” ”;sep = “\t”;sep = “\n”

(4)stringsAsFactors 逻辑值,标记字符向量是否需要转化为因子,默认是TRUE。stringsAsFactors = F意味着,“在读入数据时,遇到字符串之后,不将其转换为factors,仍然保留为字符串格式”。

(5)encoding 设定输入字符串的编码方式。

#读取txt文档

> df<- read.table("data.txt")

> df

V1 V2

1  x  y

2  1  2

3  3  4

4  5  6

> df <- read.table("data.txt",header = T)

> df

x y

1 1 2

2 3 4

3 5 6

#样式1:直接读取数据

> df <- read.table("data.csv")  #直接读取数据

> head(df)

V1

1 ID,Sepal.Length,Sepal.Width,Petal.Length,Petal.Width,Species

2                                     1,5.1,3.5,1.4,0.2,setosa

3                                       2,4.9,3,1.4,0.2,setosa

4                                     3,4.7,3.2,1.3,0.2,setosa

5                                     4,4.6,3.1,1.5,0.2,setosa

6                                       5,5,3.6,1.4,0.2,setosa

#样式2:读数+首行表头

> df <- read.table("data.csv",header = T)  #读数+首行表头

> head(df)

ID.Sepal.Length.Sepal.Width.Petal.Length.Petal.Width.Species

1                                     1,5.1,3.5,1.4,0.2,setosa

2                                       2,4.9,3,1.4,0.2,setosa

3                                     3,4.7,3.2,1.3,0.2,setosa

4                                     4,4.6,3.1,1.5,0.2,setosa

5                                       5,5,3.6,1.4,0.2,setosa

6                                     6,5.4,3.9,1.7,0.4,setosa

#样式3:读数+首行表头+","逗号分割

> df <- read.table("data.csv",header = T,sep=",")  

#读数+首行表头+","逗号分割

> head(df)

ID Sepal.Length Sepal.Width Petal.Length Petal.Width Species

1  1          5.1         3.5          1.4         0.2  setosa

2  2          4.9         3.0          1.4         0.2  setosa

3  3          4.7         3.2          1.3         0.2  setosa

4  4          4.6         3.1          1.5         0.2  setosa

5  5          5.0         3.6          1.4         0.2  setosa

6  6          5.4         3.9          1.7         0.4  setosa

> summary(df)

ID          Sepal.Length    Sepal.Width     Petal.Length  

Min.   :  1.00   Min.   :4.300   Min.   :2.000   Min.   :1.000  

1st Qu.: 38.25   1st Qu.:5.100   1st Qu.:2.800   1st Qu.:1.600  

Median : 75.50   Median :5.800   Median :3.000   Median :4.350  

Mean   : 75.50   Mean   :5.843   Mean   :3.057   Mean   :3.758  

3rd Qu.:112.75   3rd Qu.:6.400   3rd Qu.:3.300   3rd Qu.:5.100  

Max.   :150.00   Max.   :7.900   Max.   :4.400   Max.   :6.900  

Petal.Width          Species  

Min.   :0.100   setosa    :50  

1st Qu.:0.300   versicolor:50  

Median :1.300   virginica :50  

Mean   :1.199                  

3rd Qu.:1.800                  

Max.   :2.500

#样式4:读数+首行表头+","逗号分割+字符转因子factor

> df <- read.table("data.csv",header = T,sep=",",stringsAsFactor = T)

##读数+首行表头+","逗号分割+字符转因子factor

> head(df)

ID Sepal.Length Sepal.Width Petal.Length Petal.Width Species

1  1          5.1         3.5          1.4         0.2  setosa

2  2          4.9         3.0          1.4         0.2  setosa

3  3          4.7         3.2          1.3         0.2  setosa

4  4          4.6         3.1          1.5         0.2  setosa

5  5          5.0         3.6          1.4         0.2  setosa

6  6          5.4         3.9          1.7         0.4  setosa

 #请注意species结果与样式3中结果的差异

> summary(df) 

ID          Sepal.Length    Sepal.Width     Petal.Length  

Min.   :  1.00   Min.   :4.300   Min.   :2.000   Min.   :1.000  

1st Qu.: 38.25   1st Qu.:5.100   1st Qu.:2.800   1st Qu.:1.600  

Median : 75.50   Median :5.800   Median :3.000   Median :4.350  

Mean   : 75.50   Mean   :5.843   Mean   :3.057   Mean   :3.758  

3rd Qu.:112.75   3rd Qu.:6.400   3rd Qu.:3.300   3rd Qu.:5.100  

Max.   :150.00   Max.   :7.900   Max.   :4.400   Max.   :6.900  

Petal.Width          Species  

Min.   :0.100   setosa    :50  

1st Qu.:0.300   versicolor:50  

Median :1.300   virginica :50  

Mean   :1.199                  

3rd Qu.:1.800                  

 Max.   :2.500

4.3 read.csv()  

#读取.csv格式数据,read.table的一种特定应用。read.csv() 读取逗号分割数据文件,read.table()的一种特定应用。默认逗号分割,header=T,stringsAsFactor = T

df <- read.csv("data.csv") #等价与下df <- read.table("data.csv",header = T,sep=",",stringsAsFactor = T)df <- read.table("data.csv",header = T,sep=",",stringsAsFactor = T)#第一行和第二行等价

read.csv(file, header = TRUE, sep = ",", quote = "\"", 

dec = ".", fill = TRUE, comment.char = "", ...)

#实例

> df <- read.csv("data.csv") 

#相当于df <- read.table("data.csv",header = T,sep=",",stringsAsFactor = T)

> head(df)

ID Sepal.Length Sepal.Width Petal.Length Petal.Width Species

1  1          5.1         3.5          1.4         0.2  setosa

2  2          4.9         3.0          1.4         0.2  setosa

3  3          4.7         3.2          1.3         0.2  setosa

4  4          4.6         3.1          1.5         0.2  setosa

5  5          5.0         3.6          1.4         0.2  setosa

6  6          5.4         3.9          1.7         0.4  setosa

运行 (“cmd.exe /k ipconfig|find /i ” + #引号 + “ip address” + #引号, 真, )

常量 常量值 描 述

#引号 “"” 半角双引号。

#左引号 ““” 全角左双引号。

#右引号 “”” 全角右双引号。

#换行符 “字符(13)+字符(10)” 一个回车符(13)和一个换行符(10)的组合。

#pi 3.1415926535

#e 2.718282

#黑色 0 常用颜色值。

#藏青 8388608

#墨绿 32768

#深青 8421376

#红褐 128

#紫红 8388736

#褐绿 32896

#浅灰 12632256

#灰色 8421504

#蓝色 16711680

#绿色 65280

#艳青 16776960

#红色 255

#品红 16711935

#黄色 65535

#白色 16777215

#蓝灰 16744576

#藏蓝 14692440

#嫩绿 57472

#青绿 8445952

#黄褐 24768

#粉红 16754943

#嫩黄 55512

#银白 15527148

#紫色 16711824

#天蓝 16746496

#灰绿 8429696

#青蓝 12607488

#橙黄 33023

#桃红 8409343

#芙红 12615935

#深灰 6316128

#透明 -16777216

#隐藏窗口 1

#普通激活 2

#最小化激活 3

#最大化激活 4

#普通不激活 5

#最小化不激活 6

#读入 1

#写出 2

#读写 3

#重写 4

#改写 5

#改读 6

#无限制 1

#禁止读 2

#禁止写 3

#禁止读写 4

#文件首 1

#文件尾 2

#现行位置 3

#只读文件 1

#隐藏文件 2

#系统文件 4

#子目录 16

#存档文件 32

#无属性文件 128

#字节型 1

#短整数型 2

#整数型 3

#长整数型 4

#小数型 5

#双精度小数型 6

#逻辑型 7

#日期时间型 8

#子程序指针型 9

#文本型 10

#年份 1

#季度 2

#月份 3

#周 4

#自年首周数 4

#日 5

#小时 6

#分钟 7

#秒 8

#星期几 9

#自年首天数 10

#确认钮 0 “信息框”命令使用。

#确认取消钮 1

#放弃重试忽略钮 2

#取消是否钮 3

#是否钮 4

#重试取消钮 5

#错误图标 16

#询问图标 32

#警告图标 48

#信息图标 64

#默认按钮一 0

#默认按钮二 256

#默认按钮三 512

#默认按钮四 768

#程序等待 0

#系统等待 4096

#位于前台 65536

#文本右对齐 524288

#取消钮 1

#放弃钮 2

#重试钮 3

#忽略钮 4

#是钮 5

#否钮 6

#首拼及全拼 1

#双拼 2

#自动判别 3

#Ctrl键状态 1

#Shift键状态 2

#Alt键状态 4

#键0 48 按键代码值。

#键1 49

#键2 50

#键3 51

#键4 52

#键5 53

#键6 54

#键7 55

#键8 56

#键9 57

#A键 65

#B键 66

#C键 67

#D键 68

#E键 69

#F键 70

#G键 71

#H键 72

#I键 73

#J键 74

#K键 75

#L键 76

#M键 77

#N键 78

#O键 79

#P键 80

#Q键 81

#R键 82

#S键 83

#T键 84

#U键 85

#V键 86

#W键 87

#X键 88

#Y键 89

#Z键 90

#F1键 112

#F2键 113

#F3键 114

#F4键 115

#F5键 116

#F6键 117

#F7键 118

#F8键 119

#F9键 120

#F10键 121

#F11键 122

#F12键 123

#F13键 124

#F14键 125

#F15键 126

#F16键 127

#Break键 3

#退格键 8

#Tab键 9

#回车键 13

#Shift键 16

#Ctrl键 17

#Alt键 18

#Pause键 19

#CapsLock键 20

#NumLock键 144

#ScrollLock键 145

#Esc键 27

#空格键 32

#PageUp键 33

#PageDown键 34

#Home键 36

#End键 35

#左光标键 37

#上光标键 38

#右光标键 39

#下光标键 40

#Ins键 45

#Del键 46

#分号键 186

#等号键 187

#逗号键 188

#减号键 189

#圆点键 190

#除号键 191

#反撇号键 192

#左中括号键 219

#右中括号键 221

#斜杠键 220

#单引号键 222

#顶层 1 在窗口 Z 顺序的最前面。

#底层 2 在窗口 Z 顺序的最后面。

#最高层 3 在所有现行窗口的最前面并一直保持此位置。

#次高层 4 在最高层窗口的下面但在其他窗口的前面。

#全部转换 1

#日期部分 2

#时间部分 3

#输入文本 1

#输入整数 2

#输入小数 3

#拷贝 1

#翻转拷贝 2

#位异或 3

#位或 4

#位与 5

#从上到下 1

#从左到右 2

#从左上到右下 3

#从右上到左下 4

#从下到上 5

#从右到左 6

#从右下到左上 7

#从左下到右上 8

#字节集型 11 可以存储大量的不定长字节数据。

#备注型 12 文本型的扩充,可以存储大量的不定长文本数据。

#通常索引 1

#读音索引 2

#南方读音索引 3

#不区分大小写 1

#忽略所有空格 2

#取平均值 1

#求和 2

#取最大值 3 取最大数值及日期。

#取最小值 4 取最小数值及日期。

#禁止修改 1 如果禁止修改,则自动禁止添加和删除。

#禁止添加 2

#禁止删除 4

#禁止自动判断 8

#根类 1

#现行设置 2

#现行用户 3

#本地机器 4

#所有用户 5

#单击左键 1

#双击 2

#单击右键 3

#默认色 -16777216

#文本 1

#图片文件名 2

#图片数据 3

#字节集数据 4

#上左 1

#上中 2

#上右 3

#中左 4

#中中 5

#中右 6

#下左 7

#下中 8

#下右 9

#缩放图片 10

#居中图片 11

#缩放居中图片 12

#平铺图片 13

#缩放平铺图片 14

#粗体 1

#斜体 2

#下划线 4

#删除线 8

#通常型 0

#左边框 1

#上边框 2

#右边框 4

#下边框 8

#水平线 16

#垂直线 32

#单斜线 64

#双斜线 128

#交叉线 256

#左单元格 1

#上单元格 2

#右单元格 3

#下单元格 4

#无页号 0

#上左页号 1

#上中页号 2

#上右页号 3

#下左页号 4

#下中页号 5

#下右页号 6

#全部页 0

#仅打印奇数页 1

#仅打印偶数页 2

#页范围 1

#行范围 2

#纵向 0

#横向 1

#默认纸 0

#A3纸 1 297 x 420 毫米。

#A4纸 2 210 x 297 毫米。

#A5纸 3 148 x 210 毫米。

#B4纸 4 250 x 354 毫米。

#B5纸 5 182 x 257 毫米。

#四开 6 215 x 275 毫米。

#十六开 7 146 x 215 毫米。

#三十二开 8 97 x 151 毫米。

#信纸 9 216 x 279 毫米。

#法律用纸 10 216 x 355 毫米。

#行政用纸 11 184 x 266 毫米。

#声明 12 140 x 216 毫米。

#小报 13 279 x 432 毫米。

#笔记 14 216 x 279 毫米。

#帐本 15 432 x 279 毫米。

#对开纸 16 216 x 330 毫米。

#输入密码 4

#缩放到纸宽 -1

#限定到纸宽 -2

#常量 0

#资源 1

#清除信号 1

#发送或置位 2

#DTR信号 1

#RTS信号 2

#Break信号 3

#GBK中文 1

#英文 2

#BIG5中文 3

#标准输出设备 1

#标准错误设备 2