第二周--R语言数据对象及数据基本管理 第一章数据转换学习笔记(1)

浏览: 1585

1. 常用数据对象类型介绍

  • R拥有许多用于存储数据的对象类型,包括向量、矩阵、数组、数据框和列表。它们在存储数据的类型、创建方式、结构复杂度,以及用于定位和访问其中个别元素的标记等方面均有所不同。
  • 在R中,对象(object)是指可以赋值给变量的任何事物,包括常量、数据结构、函数甚至图形。
  • 数据框(data frame)是R中用于存储数据的一种结构:列表示变量,行表示观测。在同一个数据框中可以存储不同类型(如数值型、字符型)的变量。数据框将是你用来存储数据集的主要数据结构。
  • 因子(factor)是名义型变量或有序型变量。它们在R中被特殊地存储和处理。

Clipboard Image.png


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)

Clipboard Image.png

Clipboard Image.png

• 通俗地说,对象类型是指R语言组织和管理内部元素的不同方式。数据类型则描述了一个变量内元素取值的类型。例如,逻辑类型数据的取值是TRUE和FALSE,而数值类型的取值是实数。同对象类型元素取值的数据类型如下表所示:

Clipboard Image.png

3. 日期变量及其常用函数介绍

(1)日期变量

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

Clipboard Image.png

(2)as.Date函数

• 功能:将字符串形式的日期转换日期变量。

• 使用格式:as.Date(x,format=“”,…)    其中x是要转换的对象,为字符型数据,format则给出了用于读入日期的适当格式

Clipboard Image.png

# 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"))

Clipboard Image.png

(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)

Clipboard Image.png

(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")

Clipboard Image.png

推荐 3
本文由 周田田 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

老师您好,我想问一下r中怎么实现迭代

要回复文章请先登录注册