R语言入门笔记4-数据结构

2019-05-11  本文已影响0人  七七师姐

R中用于存储数据的结构有:向量、矩阵、数组、数据框、列表

一、创建不同数据结构的数据集

1、向量

函数c()一维数组,用于存储数值型、字符型、逻辑型数据。同一向量中元素的数据模式必须一致,无法混杂不同模式的数据。
示例:

aa <- c(1:20)  # 数值型向量
bb <- c("one", "two", "three", "four") # 字符型向量
cc <- c("a","b","c","d","e") # 字符型向量
dd <- c(TRUE, TRUE, FALSE, FALSE) # 逻辑型向量

2、矩阵

函数matrix(), 二维数组,用于存储数值型、字符型、逻辑型数据。同一矩阵中元素的数据模式必须一致,无法混杂不同模式的数据。
一般格式:

mymatrix <- matrix(vector, nrow = mumber_of_rows, ncol = number_of_colums, 
                              byrow = logical_value, 
                              dimnames = list(char_vector_rownames, char_vector_colnames))

示例:

mymatrix <- matrix(1:20, nrow = 4, ncol = 5,
                   byrow = TRUE, dimnames = list(bb,cc))
mymatrix
mymatrix2 <- matrix(1:20,4,5,T,list(bb,cc))
mymatrix2

3、数组

函数array(), 维度可以大于2,用于存储数值型、字符型、逻辑型数据。同一数组中元素的数据模式必须一致,无法混杂不同模式的数据。
一般格式:

myarray <- array(vector, dimensions, dimnames)

示例:

myarray <- array(aa,c(2,2,5), dimnames = list())
myarray
dim1 <- c("A1","A2")
dim2 <- c("B1","B2")
dim3 <- c("C1","C2","C3","C4","C5")
dimnames(myarray) <- list(dim1,dim2,dim3)
myarray

4、数据框

函数data.frame(),二维数据集,同一数据框中,不同列的数据模式可以不同。是R中最常用的数据结构。
一般格式:

mydf <- data.frame(col1, col2,col3)

示例:

AA <- c(4,3,2,1)
BB <- c("one","two","three","four")
CC <- c( TRUE, FALSE, TRUE,FALSE)
mydf <- data.frame(AA,BB,CC)
mydf
colnames(mydf) <- c("a","b","c")
rownames(mydf) <- AA
mydf

5、列表

函数list(), 就是一些对象的有序集合,可以把任何对象整合进一个列表中。
一般格式:

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

示例:

mylist <- list(ob1 = aa,ob2 = bb,dd,mymatrix, myarray, mydf)
mylist

二、选取数据结构中的子集

1、向量

使用方括号+坐标值

aa[3]
bb[c(1,3,4)]
dd[1:3]

2、矩阵

使用方括号+坐标值

mymatrix
mymatrix[2,]
mymatrix[,5]
mymatrix[2,5]
mymatrix[2,c(4:5)]
mymatrix[c(2:4),c(4:5)]
mymatrix[c(1,4),c(1,3)]

3、数组

使用方括号+坐标值

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

4、数据框

使用方括号+坐标值,或者使用$符号+列名

mydf
mydf[1,]
mydf[,2]
mydf[1,2]
mydf[c(1:3),c(2:3)]
mydf[1]
mydf[3]
mydf[c(1,3)]
mydf$a

5、列表

使用方括号+元素坐标值,或者使用$符号+元素名称

mylist
mylist[1]
mylist[c(1:3)]
mylist$ob1

三、数据类型转换

is.datatype()用来判断数据的类型
as.datatype()用来转换数据的类型

示例:

is.numeric(aa)
is.character(aa)
is.vector(aa)
is.matrix(aa)
is.data.frame(aa)
is.factor(aa)
is.logical(aa)
is.list(aa)

as.numeric(aa)
as.character(aa)
as.vector(aa)
as.matrix(aa)
as.data.frame(aa)
as.factor(aa)
as.logical(aa)
as.list(aa)

as.data.frame(mymatrix)
as.matrix(mydf)
is.numeric(mydf)
as.data.frame(mydf)
is.numeric(mydf$a)
is.character(mydf$a)

mydfmatrix <- as.matrix(mydf)
mydfmatrix
is.character(mydfmatrix)

mylist
as.data.frame(mylist[6])
is.data.frame(mylist[6]) 

四、总结

数据结构 如何创建 如何判断 如何转换 元素类型是否必须一致 取子集
向量 c() is.vector() as.vector() []+坐标值
矩阵 matrix() is.matrix() as.matrix() []+坐标值
数组 array() is.array() as.array() []+坐标值
数据框 data.frame() is.data.frame() as.data.frame() []+坐标值、$+列名
列表 list() is.list() as.list() []+坐标值、$+元素名
上一篇下一篇

猜你喜欢

热点阅读