การเขียนข้อมูลเร็วด้วย fwrite()

การจัดการข้อมูลด้วย data.table ใน R

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
การจัดการข้อมูลด้วย data.table ใน R

คอลัมน์วันที่และ datetime (ISO)

  • fwrite() มีตัวเลือกสำหรับเขียนคอลัมน์วันที่และ datetime 3 รูปแบบ ได้แก่ ISO, squash และ epoch
  • ส่งเสริมการใช้มาตรฐาน ISO โดยกำหนดค่าเริ่มต้นเป็น ISO
การจัดการข้อมูลด้วย data.table ใน R

วันที่และเวลา

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
การจัดการข้อมูลด้วย data.table ใน R

คอลัมน์วันที่และ datetime (ISO)

# "ISO" is default
fwrite(dt, "datetime.csv", dateTimeAs = "ISO")

fread("datetime.csv")
      date       time                      datetime
2018-12-17   19:55:39   2018-12-17T19:55:39.735036Z
การจัดการข้อมูลด้วย data.table ใน R

คอลัมน์วันที่และ datetime (Squash)

  • squash เขียน yyyy-mm-dd hh:mm:ss ในรูปแบบ yyyymmddhhmmss
  • อ่านค่ากลับมาเป็น integer ซึ่งสะดวกมากสำหรับการดึงเดือน ปี ฯลฯ ด้วยการดำเนินการ modulo เช่น 20160912 %/% 10000 = 2016
  • รองรับความละเอียดระดับมิลลิวินาที (ms)
  • ข้อมูลชนิด POSIXct (17 หลักที่ความละเอียด ms) จะถูกอ่านโดย fread เป็น integer64 อัตโนมัติ
การจัดการข้อมูลด้วย data.table ใน R

คอลัมน์วันที่และ datetime (Squash)

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

fread("datetime.csv")

       date   time          datetime
1: 20181217 195539 20181217195539735
20181217 %/% 10000 
[1] 2018
การจัดการข้อมูลด้วย data.table ใน R

คอลัมน์วันที่และ datetime (Epoch)

  • epoch นับจำนวน วัน (สำหรับวันที่) หรือวินาที (สำหรับเวลาและ datetime) นับตั้งแต่ epoch ที่เกี่ยวข้อง
  • epoch อ้างอิงคือ 1970-01-01, 00:00:00 และ 1970-01-01T00:00:00Z สำหรับ date, time และ datetime ตามลำดับ
การจัดการข้อมูลด้วย data.table ใน R

คอลัมน์วันที่และ datetime (Epoch)

fwrite(dt, "datetime.csv", dateTimeAs = "epoch")
fread("datetime.csv")
 date  time   datetime
17882 71871 1545076672
การจัดการข้อมูลด้วย data.table ใน R

มาฝึกกันเถอะ!

การจัดการข้อมูลด้วย data.table ใน R

Preparing Video For Download...