R 的 data.table 資料操作
Matt Dowle, Arun Srinivasan
Instructors, DataCamp
可用次要分隔符(|)寫出 list 欄位
dt <- data.table(id = c("x", "y", "z"), val = list(1:2, 3:4, 5:6))
fwrite(dt, "fwrite.csv")
fread("fwrite.csv")
id val
x 1|2
y 3|4
z 5|6
fwrite() 提供三種額外的日期與日期時間寫出方式:ISO、squash、epochISO,鼓勵使用 ISO 標準now <- Sys.time()
dt <- data.table(date = as.IDate(now),
time = as.ITime(now),
datetime = now)
dt
date time datetime
2018-12-17 19:54:51 2018-12-17 14:54:51
# "ISO" 是預設值
fwrite(dt, "datetime.csv", dateTimeAs = "ISO")
fread("datetime.csv")
date time datetime
2018-12-17 19:55:39 2018-12-17T19:55:39.735036Z
squash 會把 yyyy-mm-dd hh:mm:ss 壓成 yyyymmddhhmmss20160912 %/% 10000 = 2016fread 會自動把 POSIXct(17 位含毫秒)讀為 integer64fwrite(dt, "datetime.csv", dateTimeAs = "squash")
fread("datetime.csv")
date time datetime
1: 20181217 195539 20181217195539735
20181217 %/% 10000
[1] 2018
epoch 以「自相關 epoch 起算的天數(date)」或秒數(time、datetime)表示1970-01-01、00:00:00、1970-01-01T00:00:00Z(對應 date、time、datetime)fwrite(dt, "datetime.csv", dateTimeAs = "epoch")
fread("datetime.csv")
date time datetime
17882 71871 1545076672
R 的 data.table 資料操作