Mar*_* GS 7 compression r data.table
我在ssh服务器上运行R会话,而且我的存储容量有限.我想知道是否有fwrite允许压缩的实现?就像是:
z <- gzfile("file.csv.gz)
fwrite(object, z)
Run Code Online (Sandbox Code Playgroud)
你可以在 R.utils 中使用 gzip 函数:
library(R.utils)
library(data.table)
#Write gzip file
df <- data.table(var1='Compress me',var2=', please!')
fwrite(df,'filename.csv',sep=',')
gzip('filename.csv',destname='filename.csv.gz')`
# Read gzip file
fread('gzip -dc filename.csv.gz')
var1 var2
1: Compress me , please!
Run Code Online (Sandbox Code Playgroud)
更新:从2019-10-03开始,以下更改也在CRAN上发布(从1.12.4版本开始),因此install.packages("data.table")现在简单就足够了。
data.table现在fwrite()直接支持压缩的csvs。截至2019年8月28日,它尚未在CRAN上发布,但是您可以通过从GitHub安装来获得它:
# Install development version of data.table
install.packages("data.table", repos="https://Rdatatable.gitlab.io/data.table")
# Generate some data
library(data.table)
dt <- data.table(
state = sample(state.name, size = 1e6, replace = TRUE),
measure = runif(1e6)
)
# Write to a gzipped file
data.table::fwrite(dt, file = "dt.gz")
# Read back
library(R.utils)
dt2 <- data.table::fread("dt.gz")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1748 次 |
| 最近记录: |