Data Output 輸出資料

write.csv(Count_4M, file="/home/account/Table_4M.csv") save.image("/home/account/Table_4M.RData")

write.csv(DJ_index3, file="/Users/DJI_2007.csv") save.image("/Users/DJI.xts_2007.RData")

  • R 在執行程式時,可以順便輸出執行的內容
source("script.R", echo = TRUE)
  • 將 R 中執行過的歷史指令儲存在檔案中
savehistory("my_history.R")
  • 資料檔案輸出

    • sink() : 讓程式的輸出訊息直接儲存至檔案
sink("sink-example.txt")

i <- 1:3
outer(i, i, "*")
sink()

      [,1] [,2] [,3]
[1,]    1    2    3
[2,]    2    4    6
[3,]    3    6    9
  • save 函數可以將變數儲存於硬碟中
x <- c(1.2, 3.4, 5.6)
y <- x ^ 2
save(x, y, file = "xy.RData")

x
# [1] 1.2 3.4 5.6

y
# [1]  1.44 11.56 31.36
  • save 函數預設在儲存資料時會使用 gzip 壓縮格來儲存,如果要儲存的資料非常大,可以更改壓縮的演算法:
壓縮格式 壓縮檔大小
gzip(預設值) 5.3 MB
bzip2 4.8 MB
xz 4.4 MB
x.large <- runif(10^6)
x.large 

[1] 0.791662516 0.107012027 0.703947517 0.205865177 0.872278025 0.417421515
[7] 0.563431149 0.500942581 0.405978959 0.957555548 0.006970087 0.002726804
[13] 0.603437413 0.025101994 0.119972033 0.054228063 0.215705717 0.660148392
[19] 0.920135016 0.158853791 0.677411942 0.018811909 0.127694370 0.834118336
[25] 0.052092139 0.806651688 0.278356788 0.328365936 0.862158333 0.410019493
object.size\(x.large\)

# 8000040 bytes

save\(x.large, file = "compress.xz", compress = "xz"\)
  • saveRDS(): 儲存單一個變數,也可以使用 saveRDS 來將資料儲存為 rds 檔:
saveRDS(women, "women.rds")
  • readRDS(): 從 rds 檔案中載入變數,可以使用 readRDS 函數:
women2 <- readRDS("women.rds")
identical(women, women2)
  • write.csv(): 將 R 的 data frame 輸出為 csv 檔,可以使用 write.csv 函數:
write.csv(cars, file = "output-cars.csv")
  • write.table(): 函數的功能與 write.csv 類似,但可用 sep 指定分隔字元:
write.table(cars, file = "output-cars.csv", sep = "\t")
  • 圖形檔案輸出

    • png() 函數: 可以將圖形輸出為 png 點陣圖檔:
set.seed(5)
x <- rnorm(100)
png("output.png", width = 640, height = 360) # 設定輸出圖檔
hist(x) # 繪圖
dev.off() # 關閉輸出圖檔
  • jpeg、tiff 與 bmp 這些函數也可以將圖形輸出成各種不同的點陣圖檔,使用方式跟 png 函數都相同。
  • 若要輸出向量圖,可以使用 pdf 或是 svg 函數:
pdf("output.pdf", width = 4, height = 3)
hist(x)
dev.off()
  • postscript(): 如果要將 R 所繪製的圖形放在 LaTeX 中使用,可以使用 postscript 指令輸出成適用於 LaTeX 環境的 eps 向量圖檔:
postscript("output.eps", width = 4.0, height = 3.0,
           horizontal = FALSE, onefile = FALSE, paper = "special",
           family = "ComputerModern", encoding = "TeXtext.enc")
hist(x)
dev.off()
  • ggplot2

library\(ggplot2\)
pdf("output.pdf", width = 4, height = 3)
print(qplot(x))
dev.off()
  • ggplot2 本身也提供了一個 ggsave 圖形輸出函數,它可以在 R 互動式的操作模式中,將已經畫在螢幕上的圖形輸出為圖檔:
qplot(x)
ggsave("plot.pdf", width = 4, height = 3)

Reference:

results matching ""

    No results matching ""