DF = data.frame(A=1:3, B=c("foo","A,Name","baz"))
fwrite(DF)
write.csv(DF, row.names=FALSE, quote=FALSE) # same
fwrite(DF, row.names=TRUE, quote=TRUE)
write.csv(DF) # same
DF = data.frame(A=c(2.1,-1.234e-307,pi), B=c("foo","A,Name","bar"))
fwrite(DF, quote='auto') # Just DF[2,2] is auto quoted
write.csv(DF, row.names=FALSE) # same numeric formatting
DT = data.table(A=c(2,5.6,-3),B=list(1:3,c("foo","A,Name","bar"),round(pi*1:3,2)))
fwrite(DT)
fwrite(DT, sep="|", sep2=c("{",",","}"))
## Not run:
#
# set.seed(1)
# DT = as.data.table( lapply(1:10, sample,
# x=as.numeric(1:5e7), size=5e6)) # 382MB
# system.time(fwrite(DT, "/dev/shm/tmp1.csv")) # 0.8s
# system.time(write.csv(DT, "/dev/shm/tmp2.csv", # 60.6s
# quote=FALSE, row.names=FALSE))
# system("diff /dev/shm/tmp1.csv /dev/shm/tmp2.csv") # identical
#
# set.seed(1)
# N = 1e7
# DT = data.table(
# str1=sample(sprintf("
# str2=sample(sprintf("
# str3=sample(sapply(sample(2:30, 100, TRUE), function(n)
# paste0(sample(LETTERS, n, TRUE), collapse="")), N, TRUE),
# str4=sprintf("
# num1=sample(round(rnorm(1e6,mean=6.5,sd=15),2), N, replace=TRUE),
# num2=sample(round(rnorm(1e6,mean=6.5,sd=15),10), N, replace=TRUE),
# str5=sample(c("Y","N"),N,TRUE),
# str6=sample(c("M","F"),N,TRUE),
# int1=sample(ceiling(rexp(1e6)), N, replace=TRUE),
# int2=sample(N,N,replace=TRUE)-N/2
# ) # 774MB
# system.time(fwrite(DT,"/dev/shm/tmp1.csv")) # 1.1s
# system.time(write.csv(DT,"/dev/shm/tmp2.csv",row.names=F,quote=F)) # 63.2s
# system("diff /dev/shm/tmp1.csv /dev/shm/tmp2.csv") # identical
#
# unlink("/dev/shm/tmp1.csv")
# unlink("/dev/shm/tmp2.csv")
# ## End(Not run)
Run the code above in your browser using DataLab