[R筆記] 第5回 資料操作 - 2

R中的資料操作

先來討論一下日期,時間在資料表中是常出現的欄位,在R中使用date,主要為as.Date()函式。用Sys.Date()就能取到現在的日期,如果用date()還能取到時間等更詳細的資訊。如果要將date輸出成特定的格式,可以用format來幫忙,而format裡的表示式要怎麼寫,就需要參考R的文件啦,要將date轉成character,可以用as.character()。反過來,如果要將character轉成date,可以用as.Date()或是strptime。一般來說,因為每個地區的時區不同,所以要有一個通用的表示方式,讓彼此好溝通,那就是國際標準時間ISO 8601。
> Sys.Date()
[1] "2014-11-20"
> Sys.time()
[1] "2014-11-20 21:58:24 CST"
> date()
[1] "Thu Nov 20 21:57:24 2014"

## print date
> format(Sys.Date(), format = "%m/%d/%Y")
[1] "11/20/2014"
> format(Sys.time(), format = "%m/%d/%Y %H:%M:%S")
[1] "11/20/2014 22:07:41"
> format(Sys.time(), format = "%x %X")
[1] "20/11/2014 22:08:57"

## date -> character
> as.character(Sys.time())
[1] "2014-11-20 22:20:53"

## character -> date
> sDates <- c("2014-11-20", "2014-11-21")
> dates <- as.Date(sDates, format = "%Y-%m-%d")
> dates
[1] "2014-11-20" "2014-11-21"
> class(dates)
[1] "Date"

## date default value is today, timezone default is user locale
> times <- c("00:03:04", "06:03:04", "12:05:06", "18:05:06")
> strptime(times, "%H:%M:%S")
[1] "2014-11-20 00:03:04 CST" "2014-11-20 06:03:04 CST"
[3] "2014-11-20 12:05:06 CST" "2014-11-20 18:05:06 CST"
表示式說明網址
http://www.stat.berkeley.edu/~s133/dates.html
https://stat.ethz.ch/R-manual/R-devel/library/base/html/strptime.html

在R中,要將某個型別轉換成另一型別時,可以用as.numeric()及as.character()等等,而要判斷某變數是否屬於某型態時,就用is.na()及is.vector()等等。
> x <- c("1", "2")
> is.character(x)
[1] TRUE
> is.vector(x)
[1] TRUE
> x <- as.numeric(x)
> is.numeric(x)
[1] TRUE
> is.character(x)
[1] FALSE
> is.vector(x)
[1] TRUE

cbind及rbind,是用來合併vector,合成的方式分別為column為主及row為主。
> x <- 3:5
> y <- 7:9
> rbind(x, y)
  [,1] [,2] [,3]
x    3    4    5
y    7    8    9
> cbind(x, y)
     x y
[1,] 3 7
[2,] 4 8
[3,] 5 9

沒有留言:

張貼留言