欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

R語(yǔ)言日期時(shí)間的使用

 更新時(shí)間:2022年03月04日 11:05:48   作者:洋洋菜鳥  
日期時(shí)間是常用的一種類型,本文主要介紹了R語(yǔ)言日期時(shí)間的使用,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

1.日期和日期時(shí)間類型

       R 中日期可以保存為 Date 類型,一般用整數(shù)保存,數(shù)值為從 1970-1-1 經(jīng)過的天數(shù)。

        R 中用一種叫做 POSIXct 和 POSIXlt 的特殊數(shù)據(jù)類型保存日期和時(shí)間,可以僅包含日期部分,也可以同時(shí)有日期和時(shí)間。技術(shù)上,POSIXct 把日期時(shí)間保存為從 1970 年 1 月 1 日零時(shí)到該日期時(shí)間的時(shí)間間隔秒數(shù),所以數(shù)據(jù)框中需要保存日期時(shí)用 POSIXct 比較合適,需要顯示時(shí)再轉(zhuǎn)換成字符串形式;POSIXlt 把日期時(shí)間保存為一個(gè)包含年、月、日、星期、時(shí)、分、秒等成分的列表,所以求這些成分可以從 POSIXlt 格式日期的列表變量中獲得。日期時(shí)間會(huì)涉及到所在時(shí)區(qū)、夏時(shí)制等問題,比較復(fù)雜。

        基礎(chǔ)的 R 用 as.Date()、as.POSIXct() 等函數(shù)生成日期型和日期時(shí)間型,R 擴(kuò)展包 lubridate 提供了多個(gè)方便函數(shù),可以更容易地生成、轉(zhuǎn)換、管理日期型和日期時(shí)間型數(shù)據(jù)。
載入擴(kuò)展包的方式:

載入擴(kuò)展包的方式:

library(lubridate)

如果下面內(nèi)容:

證明你沒有安裝此擴(kuò)展包

此時(shí)需要安裝擴(kuò)展包,安裝方式如下:

點(diǎn)擊【程序包】,再點(diǎn)擊【安裝程序包】

然后,找到 China(Beijing 2)

然后找到需要安裝的擴(kuò)展包 lubridate 

 然后,點(diǎn)擊【確定】即可,安裝完成會(huì)出現(xiàn)如下內(nèi)容

這次我們?cè)俅溯d入擴(kuò)展包 lubridate 

2.從字符串生成日期數(shù)據(jù)

        函數(shù) lubridate::today() 返回當(dāng)前日期

today()

返回:

        函數(shù) lubridate::now() 返回當(dāng)前日期時(shí)間

now()

返回:

在結(jié)果中,我們看到了 CST 字樣,CST 是時(shí)區(qū),這里使用了操作系統(tǒng)提供的當(dāng)前時(shí)區(qū)。CST 不是一個(gè)含義清晰的時(shí)區(qū),在不同國(guó)家對(duì)應(yīng)不同的時(shí)區(qū),在中國(guó)代表中國(guó)標(biāo)準(zhǔn)時(shí)間(北京時(shí)間)

        用 lubridate::ymd(), lubridate::mdy(), lubridate::dmy() 字符型向量轉(zhuǎn)換為日期型向量,但是他們的輸入方式不相同,y 表示,m 表示,d 表示,如:         年 - 月 - 日

ymd(c("2022-1-24","2022-01-24"))

返回:

        月 - 日 - 年

mdy(c("1-24-2022", "01-24-2022"))

返回:

        日 - 月 - 年: 

dmy(c("24-1-2022","24-01-2022"))

返回:

如果在年號(hào)只有兩位數(shù)字時(shí),默認(rèn)對(duì)應(yīng)到 1969-2068 范圍。

        lubridate::make_date(year, month, day) 可以從三個(gè)數(shù)值構(gòu)成日期向量。如

make_date(2022, 1, 24)

返回:

        lubridate 包的 ymd、mdy、dmy 等函數(shù)添加 hms、hm、h 等后綴,可以用于將字符串轉(zhuǎn)換成日期時(shí)間。如

ymd_hms("2022-1-24 19:26:35")

返回:

結(jié)果顯示中 UTC 是時(shí)區(qū),UTC 是協(xié)調(diào)世界時(shí) (Universal Time Coordinated) 英文縮寫,是由國(guó)際無線電咨詢委員會(huì)規(guī)定和推薦, 并由國(guó)際時(shí)間局 (BIH) 負(fù)責(zé)保持的以秒為基礎(chǔ)的時(shí)間標(biāo)度。UTC 相當(dāng)于本初子午線 (即經(jīng)度 0 度) 上的平均太陽(yáng)時(shí),過去曾用格林威治平均時(shí) (GMT) 來表示. 北京時(shí)間比 UTC 時(shí)間早 8 小時(shí),以 1999 年 1 月 1 日 0000UTC 為例,UTC 時(shí)間是零點(diǎn),北京時(shí)間為 1999 年 1 月 1 日早上 8 點(diǎn)整。

Date()、as.DateTime()、ymd() 等函數(shù)中,可以用 tz= 指定時(shí)區(qū),比如北京時(shí)間可指定為 tz="Etc/GMT+8" 或 tz="Asia/Shanghai"。

        lubridate::make_datetime(year, month, day, hour, min, sec) 可以從最多六個(gè)數(shù)值組成日期時(shí)間,其中時(shí)分秒缺省值都是 0。如

make_datetime(2022, 1, 24, 19, 32, 36)

返回:

        用 lubridate::as_date() 可以將日期時(shí)間型轉(zhuǎn)換為日期型,如

as_date(as.POSIXct("2022-01-24 19:32:36"))

返回:

        用 lubridate::as_datetime() 可以將日期型數(shù)據(jù)轉(zhuǎn)換為日期時(shí)間型,如

as_datetime(as.Date("2022-01-24"))

返回:

3.日期顯示格式

        用 as.character() 函數(shù)把日期型數(shù)據(jù)轉(zhuǎn)換為字符型, 如

x <- as.POSIXct(c('2022-1-24', '2022-01-24'))
as.character(x)

返回:

        在 as.character() 中可以用 format 選項(xiàng)指定顯示格式,格式中 “%Y” 代表四位的公元年號(hào),“%m” 代表兩位的月份數(shù)字,“%d” 代表兩位的月內(nèi)日期號(hào)

如 %m/%d/%Y 表示 月-日-年

x <- as.POSIXct(c('2022-1-24', '2022-01-24'))
as.character(x, format='%m/%d/%Y')

返回:

        "15Mar98" 這樣的日期在英文環(huán)境中比較常見,但是在 R 中的處理比較復(fù)雜。在下面的例子中,R 日期被轉(zhuǎn)換成了類似"Mar98" 這樣的格式,在 format 選項(xiàng)中用了 “%b” 代表三英文字母月份縮寫,但是因?yàn)樵路菘s寫依賴于操作系統(tǒng)默認(rèn)語(yǔ)言環(huán)境,需要用 Sys.setlocale() 函數(shù)設(shè)置語(yǔ)言環(huán)境為"C"。示例程序如下

x <- as.POSIXct(c('2022-1-24', '2022-01-24'))
old.lctime <- Sys.getlocale('LC_TIME')
Sys.setlocale('LC_TIME', 'C')

返回:

as.character(x, format='%b%y')

返回:

Sys.setlocale('LC_TIME', old.lctime)

返回:

 包含時(shí)間的轉(zhuǎn)換,

x <- as.POSIXct('2022-1-24 19:56:42')
as.character(x)

返回:

as.character(x, format='%H:%M:%S')

返回:

這里 “%H” 代表小時(shí)(按 24 小時(shí)制),“%M” 代表兩位的分鐘數(shù)字,“%S” 代表兩位的秒數(shù)。

4.訪問日期時(shí)間的組成值

lubridate 包的如下函數(shù)可以取出日期型或日期時(shí)間型數(shù)據(jù)中的組成部分:

  • year() 取出年
  • month() 取出月份數(shù)值
  • mday() 取出日數(shù)值
  • yday() 取出日期在一年中的序號(hào),元旦為 1
  • wday() 取出日期在一個(gè)星期內(nèi)的序號(hào),但是一個(gè)星期從星期天開始,星期天為 1, 星期一為 2,星期六為 7。
  • hour() 取出小時(shí)
  • minute() 取出分鐘
  • second() 取出秒

比如, 2022-1-24 是星期一,則 提取月份

month(as.POSIXct("2022-1-24 19:56:42"))

返回:

提取日

mday(as.POSIXct("2022-1-24 19:56:42"))

返回:

提取日期在一個(gè)星期內(nèi)的序號(hào)

wday(as.POSIXct("2022-1-24 19:56:42"))

lubridate 的這些成分函數(shù)還允許被賦值,結(jié)果就修改了相應(yīng)元素的值,如         將年份由 2022 賦值為 2000

x <- as.POSIXct("2022-1-24 20:08:15")
year(x) <- 2000
month(x) <- 1
mday(x) <- 1 
x

返回:

        update() 可以對(duì)一個(gè)日期或一個(gè)日期型向量統(tǒng)一修改其組成部分的值,如

x <- as.POSIXct("2022-1-24 20:08:15")
y <- update(x, year=2000) 
y

返回:

update() 函數(shù)中可以用 year, month, mday, hour, minute, second 等參數(shù)修改日期的組成部分。

5.日期舍入計(jì)算

lubridate 包提供了 floor_date(), round_date(), ceiling_date() 等函數(shù),對(duì)日期可以用 unit= 指定一個(gè)時(shí)間單位進(jìn)行舍入。時(shí)間單位為字符串,如 seconds, 5 seconds, minutes, 2 minutes, hours, days, weeks, months, years 等。

比如,以 10 minutes 為單位,floor_date() 將時(shí)間向前歸一化到 10 分鐘的整數(shù)倍:

x <- ymd_hms("2022-1-24 20:08:15")
floor_date(x, unit="10 minutes")

返回:

 

        ceiling_date() 將時(shí)間向后歸一化到 10 分鐘的整數(shù)倍:

x <- ymd_hms("2022-1-24 20:08:15")
ceiling_date(x, unit="10 minutes")

返回: 

        round_date() 將時(shí)間歸一化到最近的 10 分鐘的整數(shù)倍,時(shí)間恰好是 5 分鐘倍數(shù)時(shí)按照類似四舍五入的原則向上取整。例如

x <- ymd_hms("2022-1-24 20:08:15")
round_date(x, unit="10 minutes")

返回:

如果單位是星期,會(huì)涉及到一個(gè)星期周期的開始是星期日還是星期一的問題。用參數(shù)week_start=7 指定開始是星期日,week_start=1 指定開始是星期一。  

6.日期計(jì)算

lubridate 的支持下日期可以相減,可以進(jìn)行加法、除法。lubridate 包提供了如下的三種與時(shí)間長(zhǎng)短有關(guān)的數(shù)據(jù)類型:

  • 時(shí)間長(zhǎng)度 (duration),按整秒計(jì)算
  • 時(shí)間周期 (period),如日、周
  • 時(shí)間區(qū)間 (interval),包括一個(gè)開始時(shí)間和一個(gè)結(jié)束時(shí)間

 6.1 時(shí)間長(zhǎng)度         

R 的 POSIXct 日期時(shí)間之間可以相減,如

d1 <- ymd_hms("2022-01-24 0:0:0")
d2 <- ymd_hms("2022-01-24 12:0:5")
di <- d2 - d1; di

返回:

結(jié)果顯示與日期之間差別大小有關(guān)系,結(jié)果是類型是 difftime。

        lubridate 包提供了 duration 類型,處理更方便:

as.duration(di)

返回:

        lubridatedseconds(), dminutes(), dhours(), ddays(), dweeks(), dyears() 函數(shù)可以直接生成時(shí)間長(zhǎng)度類型的數(shù)據(jù),如

dhours(1)

返回:

        lubridate 的時(shí)間長(zhǎng)度類型總是以秒作為單位,可以在時(shí)間長(zhǎng)度之間相加,也可以對(duì)時(shí)間長(zhǎng)度乘以無量綱數(shù),如

dhours(1) + dseconds(5)

返回:

dhours(1)*10

返回:

        可以給一個(gè)日期加或者減去一個(gè)時(shí)間長(zhǎng)度,結(jié)果嚴(yán)格數(shù)按推移的秒計(jì)算,如

d2 <- ymd_hms("2022-01-24 12:0:5")
d2 - dhours(5)

 返回:

d2 <- ymd_hms("2022-01-24 12:0:5")
d2 + ddays(10)

返回:

時(shí)間的前后推移在涉及到時(shí)區(qū)和夏時(shí)制時(shí)有可能出現(xiàn)未預(yù)料到的情況。

        用 unclass() 函數(shù)將時(shí)間長(zhǎng)度數(shù)據(jù)的類型轉(zhuǎn)換為普通數(shù)值,如:

unclass(dhours(1))

返回:

 6.2 時(shí)間周期

        時(shí)間長(zhǎng)度的固定單位是秒,但是像月、年這樣的單位,因?yàn)榭赡苡胁煌奶鞌?shù),所以日歷中的時(shí)間單位往往沒有固定的時(shí)長(zhǎng)。         lubridate 包的 seconds(), minutes(), hours(), days(),weeks(), years() 函數(shù)可以生成以日歷中正常的周期為單位的時(shí)間長(zhǎng)度,不需要與秒數(shù)相聯(lián)系,可以用于時(shí)間的前后推移。這些時(shí)間周期的結(jié)果可以相加、乘以無量綱整數(shù):

years(2) + 10*days(1)

返回:

lubridate 的月度周期因?yàn)榕c已有函數(shù)名沖突,所以沒有提供,需要使用 lubridate::period(num, units="month") 的格式,其中 num 是幾個(gè)月的數(shù)值。

        為了按照日歷進(jìn)行日期的前后平移,而不是按照秒數(shù)進(jìn)行日期的前后平移,應(yīng)該使用這些時(shí)間周期。例如,因?yàn)?2016 年是閏年,按秒數(shù)給 2016-01-01 加一年,得到的并不是 2017-01-01:

ymd("2016-01-01") + dyears(1)

返回:

        使用時(shí)間周期函數(shù)則得到預(yù)期結(jié)果

ymd("2016-01-01") + years(1)

返回:

 6.3 時(shí)間區(qū)間

        lubridate 提供了%--% 運(yùn)算符構(gòu)造一個(gè)時(shí)間期間。時(shí)間區(qū)間可以求交集、并集等。

         構(gòu)造如:

d1 <- ymd_hms("2000-01-01 0:0:0")
d2 <- ymd_hms("2000-01-02 12:0:5")
din <- (d1 %--% d2); din

返回:

        對(duì)一個(gè)時(shí)間區(qū)間可以用除法計(jì)算其時(shí)間長(zhǎng)度,如

din / ddays(1)

返回:

din / dseconds(1)

返回:

        生成時(shí)間區(qū)間,也可以用 lubridate::interval(start, end) 函數(shù),如

interval(ymd_hms("2000-01-01 0:0:0"), ymd_hms("2000-01-02 12:0:5"))

返回:

        可以指定時(shí)間長(zhǎng)度和開始日期生成時(shí)間區(qū)間,如

d1 <- ymd("2022-01-24")
din <- as.interval(dweeks(1), start=d1); din

返回:

注意這個(gè)時(shí)間區(qū)間表面上涉及到 8 個(gè)日期,但是實(shí)際長(zhǎng)度還是只有 7 天,因?yàn)槊恳惶斓木唧w時(shí)間都是按零時(shí)計(jì)算,所以區(qū)間末尾的那一天實(shí)際不含在內(nèi)。         用 lubridate::int_start()lubridate::int_end() 函數(shù)訪問時(shí)間區(qū)間的端點(diǎn),如:

int_start(din)

返回:

int_end(din)

返回:

可以用 as.duration() 將一個(gè)時(shí)間區(qū)間轉(zhuǎn)換成時(shí)間長(zhǎng)度,用 as.period() 將一個(gè)時(shí)間區(qū)間轉(zhuǎn)換為可變時(shí)長(zhǎng)的時(shí)間周期個(gè)數(shù)。         用 lubridate::int_shift() 平移一個(gè)時(shí)間區(qū)間,如

din2 <- int_shift(din, by=ddays(3)); din2

返回:

        用 lubridate::int_overlaps() 判斷兩個(gè)時(shí)間區(qū)間是否有共同部分,如

int_overlaps(din, din2)

返回:

        時(shí)間區(qū)間允許開始時(shí)間比結(jié)束時(shí)間晚,用 lubridate::int_standardize() 可以將時(shí)間區(qū)間標(biāo)準(zhǔn)化成開始時(shí)間小于等于結(jié)束時(shí)間。lubridate() 現(xiàn)在沒有提供求交集的功能,一個(gè)自定義求交集的函數(shù)如下:

int_intersect <- function(int1, int2){
n <- length(int1)
int1 <- lubridate::int_standardize(int1)
int2 <- lubridate::int_standardize(int2)
sele <- lubridate::int_overlaps(int1, int2)
inter <- rep(lubridate::interval(NA, NA), n)
if(any(sele)){
inter[sele] <-
lubridate::interval(pmax(lubridate::int_start(int1[sele]),
lubridate::int_start(int2[sele])),
pmin(lubridate::int_end(int1[sele]),
lubridate::int_end(int2[sele])))
}
inter
}

測(cè)試如下:

d1 <- ymd(c("2018-01-15", "2018-01-18", "2018-01-25"))
d2 <- ymd(c("2018-01-21", "2018-01-23", "2018-01-30"))
din <- interval(d1, d2); din

返回:

接下來,我們用用上面自定義的函數(shù)試試:

首先得先導(dǎo)入這個(gè)函數(shù)

source("D:/桌面/R語(yǔ)言/int_intersect.r")

然后,我們調(diào)用一下

int_intersect(rep(din[1], 2), din[2:3])

返回:

 此自定義函數(shù)還可以進(jìn)一步改成允許兩個(gè)自變量長(zhǎng)度不等的情形。

7.基本 R 軟件的日期功能

7.1 生成日期和日期時(shí)間型數(shù)據(jù)

        對(duì) yyyy-mm-dd 或 yyyy/mm/dd 格式的數(shù)據(jù),可以直接用 as.Date() 轉(zhuǎn)換為 Date 類型,如:

x <- as.Date("2022-1-24"); x

返回:

as.numeric(x)

返回:

        as.Date() 可以將多個(gè)日期字符串轉(zhuǎn)換成 Date 類型,如

as.Date(c("2022-1-24", "2022-01-24"))

返回:

        對(duì)于非標(biāo)準(zhǔn)的格式,在 as.Date() 中可以增加一個(gè) format 選項(xiàng),其中用%Y 表示四位數(shù)字的年,%m 表示月份數(shù)字,%d 表示日數(shù)字。如

as.Date("1/24/2022", format="%m/%d/%Y")

返回:

        用 as.POSIXct() 函數(shù)把年月日格式的日期轉(zhuǎn)換為 R 的標(biāo)準(zhǔn)日期,沒有時(shí)間部分就認(rèn)為時(shí)間在午夜。 年月日中間的分隔符可以用號(hào)也可以用正斜杠,但不能同時(shí)有減號(hào)又有斜杠。如

as.POSIXct(c('2022-1-24'))

返回:

as.POSIXct(c('2022/01/24'))

返回:

        待轉(zhuǎn)換的日期時(shí)間字符串,可以是年月日之后隔一個(gè)空格以 “時(shí): 分: 秒” 格式 帶有時(shí)間。如

as.POSIXct('2022-01-24 13:15:45')

返回:

        用 as.POSIXct() 可以同時(shí)轉(zhuǎn)換多項(xiàng)日期時(shí)間,如

as.POSIXct(c('1998-03-16 13:15:45', '2015-11-22 9:45:3'))

返回:

        轉(zhuǎn)換后的日期變量有 class 屬性,取值為 POSIXctPOSIXt, 并帶有一個(gè) tzone(時(shí)區(qū))屬性。

x <- as.POSIXct(c('1998-03-16 13:15:45', '2015-11-22 9:45:3'))
attributes(x)

返回:

        在 as.POSIXct() 函數(shù)中用 format 參數(shù)指定一個(gè)日期格式。如

as.POSIXct('1/24/22', format='%m/%d/%y')

返回:

        如果日期僅有年和月,必須添加日(添加 01 為日即可)才能讀入。比如用’1991-12’ 表示 1991 年 12 月,則如下程序?qū)⑵渥x入為’1991-12-01’:

as.POSIXct(paste('1991-12', '-01', sep=''), format='%Y-%m-%d')

返回:

又如

old.lctime <- Sys.getlocale('LC_TIME')
Sys.setlocale('LC_TIME', 'C')

返回:

as.POSIXct(paste('01', 'DEC91', sep=''), format='%d%b%y')

返回:

Sys.setlocale('LC_TIME', old.lctime)

返回:

 把'DEC91' 轉(zhuǎn)換成了’1991-12-01’。

        如果明確地知道時(shí)區(qū),在 as.POSIXct()as.POSIXlt() 中可以加選項(xiàng) tz= 字符串。選項(xiàng) tz 的缺省值為空字符串,這一般對(duì)應(yīng)于當(dāng)前操作系統(tǒng)的默認(rèn)時(shí)區(qū)。但是,有些操作系統(tǒng)和 R 版本不能使用默認(rèn)值,這時(shí)可以為 tz 指定時(shí)區(qū),比如北京時(shí)間可指定為 tz='Etc/GMT+8'。如

as.POSIXct('1949-10-01', tz='Etc/GMT+8')

返回:

7.2 取出日期時(shí)間的組成值

        把一個(gè) R 日期時(shí)間值用 as.POSIXlt() 轉(zhuǎn)換為 POSIXlt 類型,就可以用列表元素方法取出其組成的年、月、日、時(shí)、分、秒等數(shù)值。如

x <- as.POSIXct('1998-03-16 13:15:45')
y <- as.POSIXlt(x)
cat(1900+y$year, y$mon+1, y$mday, y$hour, y$min, y$sec, '\n')

返回:

注意 year 要加 1900,mon 要加 1。另外,列表元素 wday 取值 1-6 時(shí)表示星期一到星期六,取值 0 時(shí)表示星期天。         對(duì)多個(gè)日期,as.POSIXlt() 會(huì)把它們轉(zhuǎn)換成一個(gè)列表(列表類型稍后講述),這時(shí)可以用列表元素 year, mon, mday 等取出日期成分。如

x <- as.POSIXct(c('1998-03-16', '2015-11-22'))
as.POSIXlt(x)$year + 1900

返回:

7.3  日期計(jì)算

因?yàn)?Date 類型是用數(shù)值保存的,所以可以給日期加減一個(gè)整數(shù),如:

x <- as.Date("1970-1-5")
x1 <- x + 10; x1

返回:

x2 <- x - 5; x2

返回:

所有的比較運(yùn)算都適用于日期類型。         可以給一個(gè)日期加減一定的秒數(shù),如

as.POSIXct(c('1998-03-16 13:15:45')) - 30

返回:

as.POSIXct(c('1998-03-16 13:15:45')) + 10

返回:

但是兩個(gè)日期不能相加。         給一個(gè)日期加減一定天數(shù),可以通過加減秒數(shù)實(shí)現(xiàn),如

as.POSIXct(c('1998-03-16 13:15:45')) + 3600*24*2

返回:

這個(gè)例子把日期推后了兩天。

difftime(time1, time2, units='days') 計(jì)算 time1 減去 time2 的天數(shù),如

x <- as.Date("1970-1-5")
x1 <- x + 10; x1

返回:

函數(shù)結(jié)果用 c() 包裹以轉(zhuǎn)換為數(shù)值, 否則會(huì)帶有單位。

調(diào)用 difftime() 時(shí)如果前兩個(gè)自變量中含有時(shí)間部分,則間隔天數(shù)也會(huì)帶有小數(shù)部分。如

x <- as.POSIXct(c('1998-03-16 13:15:45', '2015-11-22 9:45:3'))
c(difftime(x[2], x[1], units='days'))

返回:

difftime() 中 units 選項(xiàng)還可以取為 'secs', 'mins', 'hours' 等。

練習(xí)

設(shè)文件dates.csv中包含如下內(nèi)容:
"出生日期","發(fā)病日期"
"1941/3/8","2007/1/1"
"1972/1/24","2007/1/1"
"1932/6/1","2007/1/1"
"1947/5/17","2007/1/1"
"1943/3/10","2007/1/1"
"1940/1/8","2007/1/1"
"1947/8/5","2007/1/1"
"2005/4/14","2007/1/1"
"1961/6/23","2007/1/2"
"1949/1/10","2007/1/2"
把這個(gè)文件讀入為 R 數(shù)據(jù)框 dates.tab,運(yùn)行如下程序定義 date1 和 date2
變量:

date1 <- dates.tab[,' 出生日期']
date2 <- dates.tab[,' 發(fā)病日期']

(1) 把 date1、date2 轉(zhuǎn)換為 R 的 POSIXct 日期型。
(2) 求 date1 中的各個(gè)出生年。
(3) 計(jì)算發(fā)病時(shí)的年齡,以周歲論(過生日才算)
(4) 把 date2 中發(fā)病年月轉(zhuǎn)換為’monyy’ 格式,這里 mon 是如 FEB 這樣英文三字母縮寫,yy 是兩數(shù)字的年份。
(5) 對(duì)諸如’FEB91’, ’OCT15’ 這樣的年月數(shù)據(jù),假設(shè) 00—20 表示 21 世紀(jì)年份,21—99 表示 20 實(shí)際年份。編寫 R 函數(shù),輸入這樣的字符型向量,返回相應(yīng)的 POSIXct 格式日期,具體日期都取為相應(yīng)月份的 1 號(hào)。這個(gè)習(xí)題和后兩個(gè)習(xí)題可以預(yù)習(xí)函數(shù)部分來做。
(6) 對(duì) R 的 POSIXct 日期,寫函數(shù)轉(zhuǎn)換成’FEB91’, ’OCT15’ 這樣的年月表示,假設(shè) 00—20 表示 21 世紀(jì)年份,21—99 表示 20 實(shí)際年份。
(7) 給定兩個(gè) POSIXct 日期向量 birth 和 work,birth 為生日,work 是入職日期,編寫 R 函數(shù),返回相應(yīng)的入職周歲整數(shù)值(不到生日時(shí)周歲值要減一)。

到此這篇關(guān)于R語(yǔ)言日期時(shí)間的使用的文章就介紹到這了,更多相關(guān)R語(yǔ)言日期時(shí)間內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • R語(yǔ)言對(duì)Excel文件操作實(shí)例

    R語(yǔ)言對(duì)Excel文件操作實(shí)例

    在本篇文章里小編給大家整理了一篇關(guān)于R語(yǔ)言對(duì)Excel文件操作實(shí)例內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。
    2021-05-05
  • R語(yǔ)言符號(hào)知識(shí)點(diǎn)匯總

    R語(yǔ)言符號(hào)知識(shí)點(diǎn)匯總

    在本篇文章里小編給大家整理的是一篇關(guān)于R語(yǔ)言符號(hào)知識(shí)點(diǎn)匯總內(nèi)容,有需要的朋友們可以學(xué)習(xí)下。
    2021-03-03
  • R語(yǔ)言因子型數(shù)值轉(zhuǎn)數(shù)值型的操作

    R語(yǔ)言因子型數(shù)值轉(zhuǎn)數(shù)值型的操作

    這篇文章主要介紹了R語(yǔ)言因子型數(shù)值轉(zhuǎn)數(shù)值型的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • 基于R語(yǔ)言時(shí)間序列的平穩(wěn)時(shí)間序列模型預(yù)測(cè)圖文詳解

    基于R語(yǔ)言時(shí)間序列的平穩(wěn)時(shí)間序列模型預(yù)測(cè)圖文詳解

    時(shí)間序列是將統(tǒng)一統(tǒng)計(jì)值按照時(shí)間發(fā)生的先后順序來進(jìn)行排列,時(shí)間序列分析的主要目的是根據(jù)已有數(shù)據(jù)對(duì)未來進(jìn)行預(yù)測(cè),下面這篇文章主要給大家介紹了基于R語(yǔ)言時(shí)間序列的平穩(wěn)時(shí)間序列模型預(yù)測(cè)的相關(guān)資料,需要的朋友可以參考下
    2022-12-12
  • R語(yǔ)言行篩選的方法之filter函數(shù)詳解

    R語(yǔ)言行篩選的方法之filter函數(shù)詳解

    最近工作中要處理一大批數(shù)據(jù),所以這篇文章主要給大家介紹了關(guān)于R語(yǔ)言行篩選的方法之filter函數(shù)的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-07-07
  • R語(yǔ)言繪制地圖實(shí)例講解

    R語(yǔ)言繪制地圖實(shí)例講解

    這篇文章主要介紹了R語(yǔ)言繪制地圖實(shí)例講解,文中代碼實(shí)例講解的很清晰,有需要的可以研究下
    2021-03-03
  • R語(yǔ)言交叉驗(yàn)證的實(shí)現(xiàn)代碼

    R語(yǔ)言交叉驗(yàn)證的實(shí)現(xiàn)代碼

    這篇文章主要介紹了R語(yǔ)言交叉驗(yàn)證的實(shí)現(xiàn),本文通過示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03
  • 基于R語(yǔ)言?數(shù)據(jù)檢驗(yàn)詳解

    基于R語(yǔ)言?數(shù)據(jù)檢驗(yàn)詳解

    這篇文章主要介紹了R語(yǔ)言數(shù)據(jù)檢驗(yàn)的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-03-03
  • R語(yǔ)言讀取xls與xlsx格式文件過程

    R語(yǔ)言讀取xls與xlsx格式文件過程

    這篇文章主要為大家介紹了使用R語(yǔ)言讀取xls與xlsx格式文件的過程步驟,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪
    2021-11-11
  • R語(yǔ)言的下載安裝圖文教程講解

    R語(yǔ)言的下載安裝圖文教程講解

    這篇文章主要介紹了R語(yǔ)言的下載安裝圖文教程講解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03

最新評(píng)論