我正在尝试使用不同的软件包来找到最适合快速保存csv数据文件的方法。
我找到了'iotools'软件包和方法'write.csv.raw',它非常适合保存有关时间的数据。
但是,保存文件中的数据集存在一些有争议的特征:
所以我需要保存文件中的数据集,使其具有列名和正确的小数符号 我的脚本如下:
library(iotools)
library(UsingR)
data(galton)
head(galton)
#option1 to save data
write.csv.raw(galton,"test.csv",append=FALSE,sep=";",col.names=TRUE)
#option2 to save data
write.table.raw(galton,"test.csv",append=FALSE,sep=";",col.names=TRUE)
read.csv2("test.csv",nrow=5)
输入数据集(来自R):
child parent
61.7 70.5
61.7 68.5
61.7 65.5
61.7 64.5
61.7 64.0
62.2 67.5
输出文件:
X1.61.7 X70.5
2\t61.7 68.5
3\t61.7 65.5
4\t61.7 64.5
5\t61.7 64
6\t62.2 67.5
18/02/16更新:
在procrastinator0的答案的帮助下,我设法以正确的方式使用'write.csv.raw'。
基于问题部分中的数据帧的不同写入方法的比较如下:
system.time(write.csv.raw(N, “test.csv”,月= “;”,追加= TRUE))
用户系统已过 15.61 1.17 21.92system.time(write.table(N, “test.csv”,月= “;”,row.names = FALSE,DEC = “”))
用户系统已过 63.25 1.20 64.60system.time(write.csv2(N, “test.csv”,row.names = FALSE))
用户系统已过 63.71 1.28 65.38system.time(write_csv(n,“test.csv”,na =“NA”)) 用户系统已过 136.75 3.60 141.24
27/04/16更新:(已过期)
我做了一些实验运行来写/读数据(不同的工具)。实验基于理论样本以及真实样本(来自我的实践)。我试图制作可重现的脚本。希望它们对新手有用:-)
IO实验的链接:
从文件中读取数据:https://rpubs.com/demydd/166375
将数据写入文件:https://rpubs.com/demydd/170957
19/09/16更新:
添加羽毛包(read_feather,write_feather)
fwrite是从data.table包中添加的。
指向更新测试的链接:
答案 0 :(得分:1)
对于列名称,这是known issue。建议的解决方法:
> cat(noquote(paste0(paste0(names(df),collapse = ","),"\n")),file = "output.csv")
> write.csv.raw(df,"output.csv",append=TRUE)
默认情况下, write.csv.raw不会为我添加“\ t”索引,但您可以尝试使用NA
作为nsep参数。
答案 1 :(得分:0)
您可以将列名保存为因子,然后按如下方式使用它:
library(iotools)
library(UsingR)
data(galton)
Cnames=as.factor(colnames(galton))
write.table(galton,"test2.csv",sep=";")
test2=read.delim("test2.csv",sep = ";",)
colnames(test2)=Cnames
输出结果为:
head(test2)
child parent
1 61.7 70.5
2 61.7 68.5
3 61.7 65.5
4 61.7 64.5
5 61.7 64.0
6 62.2 67.5