设置分隔符';' 在write.csv中

dse*_*ent 7 r export-to-csv

我有以下代码:

myTable[i,] = strsplit(line, split=";")[[1]]
write.csv(myTable[-1,], file="episodes_cleared.csv", sep=";", row.names=FALSE, quote=FALSE)
Run Code Online (Sandbox Code Playgroud)

不幸的是,分隔符仍然是',':

iEpisodeId,iPatientId,sTitle,sICPc,dStart,dEnd,bProblem
Run Code Online (Sandbox Code Playgroud)

运行代码给了我:

警告信息:

1: In write.csv(myTable[-1, ], file = "episodes_cleared.csv", sep = ";",  : attempt to set 'sep' ignored
2: In write.csv(myTable[-1, ], file = "episodes_cleared.csv", sep = ";",  :
Run Code Online (Sandbox Code Playgroud)

试图设置'sep'被忽略

我究竟做错了什么?

小智 8

首先,您应该提供可重现的示例.

但是,如果使用write.csv2它,则默认使用分号作为分隔符.


ynu*_*nux 6

文档https://stat.ethz.ch/R-manual/R-devel/library/utils/html/write.table.html说:

write.csv使用“。” 小数点表示逗号,分隔符表示逗号。

write.csv2使用逗号表示小数点,使用分号表示分隔符,即在某些西欧语言环境中CSV文件的Excel约定。

这些包装器是故意不灵活的:它们旨在确保使用正确的约定来写入有效文件。尝试更改附加,列名,sep,dec或qmethod的尝试将被忽略,并显示警告。

因此,它不仅默认使用此分隔符,而且还会强制执行。使用

write.table(data,file="data.csv",sep=",",dec = " ")
Run Code Online (Sandbox Code Playgroud)