-
R数据结构
8.日期(date):距离1970-01-01的天数
常用日期函数:date()/Sys.Date()/weekdays()/months/quarters()
> x <- date() > x [1] "Tue Nov 13 16:29:11 2018" > class(x) [1] "character" > x2 <- Sys.Date() > x2 [1] "2018-11-13" > class(x2) [1] "Date"
> x3 <- as.Date("2019-01-01") #获取Date对象,格式: year-month-day > x3 [1] "2019-01-01" > class(x3) [1] "Date" > weekdays(x3) #获取日期的星期 [1] "星期二" > months(x3) [1] "一月" > quarters(x3) #获取日期所在的季度 [1] "Q1" > julian(x3) #获取指定日期距离1970年1月1日的天数 [1] 17897 attr(,"origin") [1] "1970-01-01"
> x4 <- as.Date("2020-08-20") > x4-x3 #计算两个日期相差天数 Time difference of 597 days > as.numeric(x4-x3) #只获取天数,剔除文字 [1] 597
9.时间(time):距离1970年1月1日的秒数
函数:Sys.time()(获取当前系统时间)
POSIXct:整数,常用于存入数据框;POSIXlt:列表,还包含星期、年月日等信息
> x <- Sys.time() > x [1] "2018-11-13 16:43:30 CST" > class(x) [1] "POSIXct" "POSIXt" > p <- as.POSIXlt(x) #类型转换为POSIXlt > p[1] "2018-11-13 16:43:30 CST" > class(p) [1] "POSIXlt" "POSIXt" > names(unclass(p)) #查看存储了哪些变量 [1] "sec" "min" "hour" "mday" "mon" "year" "wday" [8] "yday" "isdst" "zone" "gmtoff" > p$sec #获取某个变量的值 [1] 30.6498 > as.POSIXct(p) #转换类型
查看全部 -
R数据结构
7.数据框(data frame):用于存储表格数据,可视为各元素长度相同的列表。每个元素代表一列数据,每个元素的长度代表行数,元素类型可以不同。(数学理解:相当于几个列向量构成的向量组)
创建数据框:df <- data.frame(id = c(1,2,3,4), name=c("a","b","c","d"), gender=c(TRUE, TRUE, FALSE, FALSE)) #每个参数定义一个字段
查看数据框行数与列数:nrow(df), ncol(df)
将数据框转换成矩阵:
> df2 <- data.frame(id=c(1,2,3,4), score=c(80,86,90,100)) > df2 id score 1 1 80 2 2 86 3 3 90 4 4 100 > data.matrix(df2) id score [1,] 1 80 [2,] 2 86 [3,] 3 90 [4,] 4 100
查看全部 -
R数据结构
6.缺失值(missing value):NA/NaN,其中NaN属于NA。NaN表示数字的缺失值,NA可以表示数字缺失值、字符缺失值等
判断是否有缺失值:is.na()/is.nan()
> x <- c(1, NaN, 2, NA, 3) > is.na(x) [1] FALSE TRUE FALSE TRUE FALSE > is.nan(x) [1] FALSE TRUE FALSE FALSE FALSE
查看全部 -
R数据结构
5.因子(factor):整数向量+标签(label),用于处理分类数据(有序和无序)
创建因子:x <- factor(c("female", "female", "male", "male", "female"))
y <- factor(c("female", "female", "male", "male", "female"), levels = c("male", "female")) #通过参数2设置基线水平
table(factor):查看因子数据各类型数量
unclass(facotr):去掉因子数据的水平(level)
查看全部 -
R数据结构
4.列表(list):可以包含不同类型的对象
创建列表:l1 <- list("a", 2, 10L, 3+4i, TRUE)
l2 <- list(a=1, b=2, c=3) #给元素指定名称,a,b,c是名称
l3 <- list(c(1, 2, 3), c(4, 5, 6, 7)) #创建一个列表,该列表的元素所包含的元素个数大于1
※给矩阵的行和列命名: x <- matrix(1:6, nrow=2, ncol=3) dimnames(x) <- list(c("a", "b"), c("c", "d", "e"))
查看全部 -
R数据结构
2.矩阵(matrix):向量+维度属性(整数向量:nrow, ncol)
2.1 创建矩阵:
方法一: x <- matrix(nrow=3, ncol=2) #创建一个3行2列矩阵,元素为NA。该函数创建矩阵时先列后行。
x <- matrix(1 : 6, nrow=3, ncol=2) #按列填充元素
方法二: y <- 1 : 6 #生成一个向量
dim(y) <- c(2, 3) #指定行数与列数
其他:dim(matrix):查看矩阵matrix的行数与列数
attributes(matrix):查看矩阵matrix有哪些属性
2.2 拼接矩阵
y1 <- 1 : 6 dim(y1) <- c(2 : 3) y2 <- matrix(1:6, nrow =2, ncol=3) rbind(y1, y2) #按行拼接 cbind(y1, y2) #按列拼接
3.数组:与矩阵类似,但维度可以大于2
创建数组:x <- array(1:24, dim=c(4, 6)) #参数1填充元素,参数2指定维度
y <- array(1:24, dim=c(2, 3, 4))
查看全部 -
R数据结构
向量(vector):只能包含同一类型的对象
创建向量:
方法一:x <- vector("character", length = 10) #生成一个空向量,参数1:指定数据类型,参数2:指定向量长度
方法二:y <- 1 : 4 #生成一个包含1至4四个数字的向量
方法三:z <- c(1, 2, 3, 4) #使用函数c,参数:想要添加的元素
※如果传入的元素类型不一样,R会强制转换为相同类型。如: vec <- c(TRUE, 10, "a"),会生成向量char[1:3] "TRUE" "10" "a"
其他:(1) RStudio中,选中脚本文件中的某行,点击Run按钮,可直接执行该行代码。
(2) 强制类型转换:as.type(var) #将var转换为type类型,如as.numericx(), as.logical(y), as.character(z)
(3) 给向量元素赋名称:names(var) <- c("a", "b", "c", "d")
查看全部 -
1.R对象基本数据类型:
(1)字符(character):"time";
(2)数值(numeric):2, 2.3;
(3)整数(integer): 2L;
(4)复数(complex):1+2i;
(5)逻辑(logical):TRUE, FALSE
查看类型:class(variable)
R区分大小写,字母相同大小写不同的变量名是不同的变量名。
2.R对象属性
(1)名称(name)
(2)维度(dimensions: matrix, array)
(3)类型(class)
(4)长度(length)
查看全部 -
R语言 对象类型 小结
查看全部 -
df<-data.frame(id=c(1,2,3,4),name=c("a","b","c","d"),sex=c(TRUE,TRUE,FALSE,TRUE))
查看全部 -
判断是否有缺失值用is.na()\is.nan()
查看全部 -
创建矩阵 x<-matrix(nrow= ,ncol= )
dim()查看矩阵的维度
attributes()查看矩阵的信息
创建矩阵 x<-1:9 dim(x)<-c(3,3)
两个矩阵合并成一个,行拼接rbind(x,x1)
列拼接cbind(x,x1)
数组 x<-array(1:10,dim=c(4,6))
查看全部 -
向量:只包含同一类型的对象
创建向量:vector();c();as.logical();as.character()
查看全部 -
原始数据(raw dataset)->预处理后的数据(clean dataset)
[]:提取一个或多个类型相同的元素
[[]]:从列表或数据框中提取元素
$:按名字从列表或数据框中提取元素
查看全部 -
缺失值
NA/NaN:NaN属于NA,NA不属于NaN
类型属性:integer NA,character NA
is.na()/is.nan()
查看全部
举报