1. 常用数据对象类型介绍
- R拥有许多用于存储数据的对象类型,包括向量、矩阵、数组、数据框和列表。它们在存储数据的类型、创建方式、结构复杂度,以及用于定位和访问其中个别元素的标记等方面均有所不同。
- 在R中,对象(object)是指可以赋值给变量的任何事物,包括常量、数据结构、函数甚至图形。
- 数据框(data frame)是R中用于存储数据的一种结构:列表示变量,行表示观测。在同一个数据框中可以存储不同类型(如数值型、字符型)的变量。数据框将是你用来存储数据集的主要数据结构。
- 因子(factor)是名义型变量或有序型变量。它们在R中被特殊地存储和处理。
a<-1:10
fit<-lm(Sepal.length~Sepal.width,data=iris)
p<-plot(iris)
library(ggplot2)
q<-qplot(mpg,wt,data=mtcars,geom="path")
q
myfun<-function(x){
(x-min(x))/(max(x)-min(x))
}
myfun(iris$Sepal.length)
plot(iris)
Plot(iris) #区分函数大小写
2. 对象属性的判断和转换
• R中提供了一系列用来判断某个对象的数据类型和将其转换为另一种数据类型的函数。
methods(as) #methods包中的全部转换函数
methods(is) #methods包中全部对象类型判别函数
x<-1:10
is.numeric(x)
is.character(x)
y<-as.character(x)
is.character(y)
• 通俗地说,对象类型是指R语言组织和管理内部元素的不同方式。数据类型则描述了一个变量内元素取值的类型。例如,逻辑类型数据的取值是TRUE和FALSE,而数值类型的取值是实数。不同对象类型元素取值的数据类型如下表所示:
3. 日期变量及其常用函数介绍
(1)日期变量
• 日期值通常以字符串的形式传入R中,然后转化为数值形式存储的日期变量。
(2)as.Date函数
• 功能:将字符串形式的日期转换日期变量。
• 使用格式:as.Date(x,format=“”,…) 其中x是要转换的对象,为字符型数据,format则给出了用于读入日期的适当格式
# ISOdate()
t <- ISOdate(2016,8,1)
class(t);t
# 允许加入小时、分钟、秒数信息
t <- ISOdatetime(2016,8,1,15,28,48)
class(t);t
Sys.Date()
Sys.time()
date()
# as.Date
dates <- paste("08",c("01","02","03"),"2016",sep = "/")
dates
(date <- as.Date(dates,"%m/%d/%Y"))
class(dates);class(date)
difftime(as.Date("2016-8-20"),as.Date("2016-8-1"))
(3)as.POSIXlt函数
• 功能:将字符串形式的日期转换为指定格式的时间变量。
• 使用格式:as.POSIXlt(x,tz=“”,format)
其中x是要转换的字符串型日期时间值;tz指定转换后的时区,“”为当前时区,“GMT”为UTC时区;format指定要转换的日期值的格式。
# as.POSIXlt
d <- Sys.time()
p <- as.POSIXlt(d)
print(class(p));print(mode(p));print(p)
print(p$year+1900)
print(p$mon+1)
print(p$mday)
print(p$yday+1)
print(p$wday)
(4)其他时间函数
• strptime(x,format,tz=“”):将字符型的日期时间值转换为时间变量
• strftime(x,format=“”):不striptime()函数想对应,用亍将时间变量按指定的格式转换为字符型日期值
• format(x,…):将对象按照指定格式转化成字符串
# strptime()
x <- c("2016-08-08 11:55:55","2016-07-01 19:33:02")
x
is.character(x)
(x.strptime <- strptime(x,"%Y-%m-%d %H:%M:%S"))
# strftime()
strftime(x.strptime,format = "%Y/%m/%d")
format(x.strptime,"%d/%m/%Y")