R語言學習筆記:日期處理


1、取出當前日期

Sys.Date()

[1] "2014-10-29"

date()  #注意:這種方法返回的是字符串類型

[1] "Wed Oct 29 20:36:07 2014"

2、在R中日期實際是double類型,是從1970年1月1日以來的天數

typeof(Sys.Date())

[1] "double"

3、轉換為日期

用as.Date()可以將一個字符串轉換為日期值,默認格式是yyyy-mm-dd。

as.Date("2007-02-01")   #得到"2007-02-01",顯示為字符串,但實際是用double存儲的

as.double(as.Date("1970-01-01"))  #結果為0,是從1970年1月1日以來的天數。

可以把定制的日期字符串轉換為日期型

as.Date("2007年2月1日", "%Y年%m月%d日") 

[1] "2007-02-01"

格式

意義

%Y

年份,以四位數字表示,2007

%m

月份,以數字形式表示,從01到12

%d

月份中當的天數,從01到31

 

 

%b

月份,縮寫,Feb

%B

月份,完整的月份名,指英文,February

%y

年份,以二位數字表示,07

4、把日期值輸出為字符串

today <- Sys.Date()

format(today, "%Y年%m月%d日")

[1] "2014年10月29日"

5、計算日期差

由於日期內部是用double存儲的天數,所以是可以相減的。

today <- Sys.Date()

gtd <- as.Date("2011-07-01")   #我是從2011年7月開始實踐Get Things Done(GTD)

today - gtd

Time difference of 1216 days  

原來我到今天為止已經實踐GTD有1216天了。

用difftime()函數可以計算相關的秒數、分鍾數、小時數、天數、周數

difftime(today, gtd, units="weeks")  #還可以是“secs”, “mins”, “hours”, “days”

Time difference of 173.7143 weeks

 

繼續用R語言解決一個我的實際問題:統計fitbit計步器中的數據並繪圖

# 讀入CSV格式的fitbit統計數據

fitbit <- read.csv("fitbit.csv")

# 日期要轉換一下

fitbit$date <- as.Date(fitbit$date, "%Y年%m月%d日")

# 畫圖,只畫線

plot(fitbit$date, fitbit$step, type="l")

 

# 只統計八月的運動情況

fitbit8 <- fitbit[months(fitbit$date)=="八月", ]
plot(fitbit8$date, fitbit8$step, type="l")


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM