R语言教程 -- 基本数据类型与日期时间变量

一、基本数据类型

1. R语言的基本数据类型

包括:数值型、逻辑型、字符型、缺省值、浮点型、复数型、整数型等。

1 基本数据类型的判别与转换

类型

判别函数

转换函数

numeric

is.numeric()

as.numeric()

logical

is.logical()

as.logical()

character

is.character()

as.character()

NA

is.na()

as.na()

double

is.double()

as.double()

complex

is.complex()

as.complex()

integer

is.integer()

as.integer()

 

1 数据类型的判别与转换

2.查看对象的类型

函数Class()/typeof()/mode()基本格式相同:

class(x)

其中x为要查看的对象。

注:在展现数据的细节上,mode()<class()<typeof()

二、日期时间变量

1. 日期值通常以字符串形式传入R中,然后转化为以数值形式存储的日期变量。

注意:R的内部日期是以197011日至今的天数来存储,内部时间则是以197011日至今的秒数来存储。

读取系统当前日期时间的函数(注意大小写)

(1) Sys.Date()——返回系统当前的日期

(2) Sys.time()——返回系统当前的日期和时间

(3) date()——返回系统当前的日期和时间(字符串形式)

2. 日期时间转化函数

1)字符串型日期变量转化为日期变量

函数as.Date(),基本格式为:

as.Date(x,format=" ",...)

其中,x为字符串型日期值,format指定日期格式。

 

2 日期时间格式

日期时间格式

含义

示例

%d

数字表示的日期(00~31

01~31

%a

缩写的星期名

Mon

%A

非缩写的星期名

Monday

%w

数字表示的星期几

0~60为周日)

%m

数字表示的月份(00~12

00~12

%b

缩写的月份

Jan

%B

非缩写的月份

January

%y

二位数的年份

16

%Y

四位数的年份

2016

%H

24小时制小时(00~23

00~23

%I

12小时制小时(01~12

01~12

%p

AM/PM指示

AM/PM

%M

十进制分钟(00~60

00~60

%S

十进制秒(00~60

00~60

 

注意as.Date()只能转化包含年月日星期的字符串,无法转化具体到时间的字符串。

 

2 将字符型日期转化为日期变量

 

(2) 字符串日期时间变量转化为时间变量

函数as.POSIXlt()as.POSIXct(),前者为“字符串式”存储,后者为“整数(秒数)”存储,基本格式为:

as.POSIXlt(x,tz=" ", format)

as.POSIXct(x,tz=" ", format)

 

其中,x为字符串型日期时间值,tz指定转化后的时区(" "为当前时区,“GMT”为格林尼治标准时也是协调世界时UTC的俗称,“CST”为中国标准时即北京时间);format指定日期时间格式

 

3 将字符串形式的日期时间值转化为时间变量

> t<-"2016-07-28 11:15:47"

> as.POSIXlt(t,tz="", "%Y-%m-%d %H:%M:%S")

[1] "2016-07-28 11:15:47 CST"

 

注意:日期年月日与时间时分秒之间有空格。

 

 

(2) 字符串日期时间变量转化为时间变量

函数strptime()功能同as.POSIXlt(),格式稍有差别,基本格式为:

strptime(x,format,tz=" ")

例如,对例3中的变量t有

> strptime(t,"%Y-%m-%d %H:%M:%S",tz="")

[1] "2016-07-28 11:15:47 CST

 

 

 

(2) 日期时间变量转化为字符串日期时间值

函数strftime()功能与strptime()相反,基本格式为:

strftime(x,format=" ")

例如,将上述时间变量记time,有

> strftime(time,format="%Y/%m/%d")

[1] "2016/07/28"

 

(3) 将对象按指定格式转化为字符串

函数format()基本格式为:

format(x,format)

其中,x为要转化为字符串的对象,format指定转化格式。

例如,使用前面的变量time,有

> format(time,"%d/%m/%Y")

[1] "28/07/2016"

 

注意:函数format()不局限于转化日期变量,也可以转化其他类型的变量。