R语言创建向量、数据框以及数据框的操作
作业:2019.04.23- 笔记整理
1.创建一个向量元素为a,b,e,2,5
创建向量时,先给向量命名,如letters,名字后加“<-符号,接着写函数c(元素)”,如“letters <- c(a,b,c,2,5)”。输入"<-"的方法:同时按“alt和-”或先按"<"再按"-"。
letters <- c(a,b,c,2,5)
2.确定上述向量中每个元素的数据类型
向量只有一行,向量里元素的数据类型操作:class(向量名称[第几列]),如下:
class(letters[1])
class(letters[2])
class(letters[3])
class(letters[4])
class(letters[5])
> class(letters[1])
[1] "character"
> class(letters[2])
[1] "character"
> class(letters[3])
[1] "character"
> class(letters[4])
[1] "character"
> class(letters[5])
[1] "character"
3.创建一个包含字符和数值的数据框(5行3列)
给数据框的各列及各行命名,输入函数c(元素为数字直接输入,每个元素之间用逗号隔开,英文单词要加引号,再用逗号分开),按要求输入数据框的函数后,记得要输入数据框如resualtdata,才能在结果中把数据框的各行各列内容显示出来。
months<-c(1,3,5,9,12)
scores <- c(5,6,5,6,7)
speaking <- c("good","fine","good","fine","excellent")
resultdata <- data.frame(months,scores,speaking)
resultdata
months scores speaking
1 1 5 good
2 3 6 fine
3 5 5 good
4 9 6 fine
5 12 7 excellent
4.对上述数据框的行名和列名进行更改
对数据框的各行和各列进的名称修改时,方法:rownames(数据框名字)<-(各列名之间要用引号,列名之间用逗号隔开),colnames(数据框名字)<-(各行名之间要用引号,行名之间用逗号隔开),最后再把数据框名字写上后运行。
> rownames(resultdata) <- c("once","twice","third","fourth","fifth")
> colnames(resultdata) <- c("times","pionts","oraltest")
> resultdata
times pionts oraltest
once 1 5 good
twice 3 6 fine
third 5 5 good
fourth 9 6 fine
fifth 12 7 excellent
>
5.确定数据框中各列的数据类型
第一种方法,class(数据框名称[,第几列]),第几行的数字是空白的;同理,确定数据框中各行的数据类型,class(数据框名称[第几行,]),第几列的数字是空白的。第二种方法,class(数据框名称$第几列的名称),如下。
class(resultdata[,1])
class(resultdata[,2])
class(resultdata[,3])
> class(resultdata[,1])
[1] "numeric"
> class(resultdata[,2])
[1] "numeric"
> class(resultdata[,3])
[1] "factor"
or
class(resultdata$times)
class(resultdata$pionts)
class(resultdata$oraltest)
> class(resultdata$times)
[1] "numeric"
> class(resultdata$pionts)
[1] "numeric"
> class(resultdata$oraltest)
[1] "factor"
6.不同方法检索数据框的第3行第2列的元素
方法1:数据框名称 [第几行,第几列];
方法2:数据框名称["第几行对应的名称","第几列对应的名称"],此方法相应的行名和列名一定要加双引号,否者运行是错误的。
resultdata[3,2]
resultdata["third","pionts"]
> resultdata[3,2]
[1] 5
> resultdata["third","pionts"]
[1] 5
7.创建一个矩阵(4行6列)
4行6列:矩阵名称<-matrix(1:24,nrow=4,ncol=6)
5行4列:矩阵名称<-matrix(1:20,nrow=5,ncol=4)
X <- matrix(1:24,nrow=4,ncol=6)
X
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 1 5 9 13 17 21
[2,] 2 6 10 14 18 22
[3,] 3 7 11 15 19 23
[4,] 4 8 12 16 20 24
8.对上述矩阵的行名和列名进行更改
参考在数据框中更改各行各列命名的方法,注意的是,输入命名的函数后,运行不要从原始矩阵函数开始,不然会一直默认,应从矩阵名称开始,或者输入更改各行和各列的函数后,再输入矩阵名称,之后运行即可。
rownames(X) <- c("D1","D2","D3","D4")
colnames(X) <- c("E1","E2","E3","E4","E5","E6")
X
E1 E2 E3 E4 E5 E6
D1 1 5 9 13 17 21
D2 2 6 10 14 18 22
D3 3 7 11 15 19 23
D4 4 8 12 16 20 24
9.不同方法检索数据框的第3行第2列的元素
参考数据框的方法,同样也要注意在使用X["D3","E2"]方法时,一定要给具体的行和列的名称加引号。
X[3,2]
X["D3","E2"]
> X[3,2]
[1] 7
> X["D3","E2"]
[1] 7
在使用R语言时,输入的字母,符号一定是用英文版,当命令发生错误时,要仔细核对,是不是格式出现错误,显示不出结果时,输入相应的函数后,是不是没有输入数据框或矩阵。
将作业写至简书邮件jmzeng1314@163.com,抄送juanyuanjing@163.com