讀寫Binary format

  • save()save.image()serialize()的用法

    #隨便做兩個data frame來存
    > x <- data.frame(foo = 1:4, bar = c("a", "b", "c", "d"))
    > y <- data.frame(i = c("e", "f"), j =1:2 )
    #把x、y存到test裡面,file參數之前的都視為要儲存的物件
    > save(x, y, file = "D:\\test")
    #或是省略物件參數,用save.image()把工作環境內定義的Object全部存起來
    save.image("D:\\test")
    #再把x、y載回來
    > load("D:\\test")
    
  • serialize()unserialize()的用法

    大概是serialize(Oject, connection),就是把Object二進位後指定給某資料流(connection)的意思,如果connection填NULL就直接輸出到console。

    #把(list(1,2,3)序列化並賦值給x
    #如果不用<-導向給x就會出現在stdout,亦即輸出console
    > x <- serialize(list(1,2,3), NULL)
    #可以看到這時候x儲存的是二進位資料
    > x
    [1] 58 0a 00 00 00 02 00 03 03 02 00 02 03 00 00 00 00 13 00 00 00 03 00 00 00 0e 00 00 00 01 3f f0 00 00 00 00 00 00 00
    [40] 00 00 0e 00 00 00 01 40 00 00 00 00 00 00 00 00 00 00 0e 00 00 00 01 40 08 00 00 00 00 00 00
    #x儲存的二進位資料經過unserialize還原成可讀資料。
    > unserialize(x)
    [[1]]
    [1] 1
    
    [[2]]
    [1] 2
    
    [[3]]
    [1] 3
    

results matching ""

    No results matching ""