使用 fwrite() 快速写入数据

在 R 中使用 data.table 进行数据处理

Matt Dowle, Arun Srinivasan

Instructors, DataCamp

fwrite

可使用次级分隔符(|)写入 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
在 R 中使用 data.table 进行数据处理

日期与日期时间列(ISO)

  • fwrite() 另提供三种日期/日期时间写法:ISOsquashepoch
  • 默认使用 ISO,鼓励采用 ISO 标准
在 R 中使用 data.table 进行数据处理

日期与时间

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
在 R 中使用 data.table 进行数据处理

日期与日期时间列(ISO)

# "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
在 R 中使用 data.table 进行数据处理

日期与日期时间列(Squash)

  • squashyyyy-mm-dd hh:mm:ss 写为 yyyymmddhhmmss
  • 读入为整数。便于用取整/取模提取年月等,例如:20160912 %/% 10000 = 2016
  • 支持毫秒(ms)精度
  • 毫秒精度的 POSIXct(17 位)被 fread 自动读为 integer64
在 R 中使用 data.table 进行数据处理

日期与日期时间列(Squash)

fwrite(dt, "datetime.csv", dateTimeAs = "squash")

fread("datetime.csv")

       date   time          datetime
1: 20181217 195539 20181217195539735
20181217 %/% 10000 
[1] 2018
在 R 中使用 data.table 进行数据处理

日期与日期时间列(Epoch)

  • epoch 统计自相关纪元起的天数(用于 date)或秒数(用于 time 和 datetime)
  • 相关纪元分别为 date1970-01-01time00:00:00datetime1970-01-01T00:00:00Z
在 R 中使用 data.table 进行数据处理

日期与日期时间列(Epoch)

fwrite(dt, "datetime.csv", dateTimeAs = "epoch")
fread("datetime.csv")
 date  time   datetime
17882 71871 1545076672
在 R 中使用 data.table 进行数据处理

Passons à la pratique !

在 R 中使用 data.table 进行数据处理

Preparing Video For Download...