définir le séparateur ';' dans write.csv
J'ai le code suivant:
myTable[i,] = strsplit(line, split=";")[[1]]
write.csv(myTable[-1,], file="episodes_cleared.csv", sep=";", row.names=FALSE, quote=FALSE)
Malheureusement, le séparateur est toujours ',':
iEpisodeId,iPatientId,sTitle,sICPc,dStart,dEnd,bProblem
L'exécution du code me donne:
Messages d'avertissement:
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 = ";", :
tentative de définition de "sep" ignorée
Qu'est-ce que je fais mal?
Tout d'abord, vous devez fournir un exemple reproductible.
Cependant, si vous utilisez write.csv2
il utilise par défaut un point-virgule comme séparateur.
La documentation https://stat.ethz.ch/R-manual/R-devel/library/utils/html/write.table.html dit:
write.csv utilise "." pour le point décimal et une virgule pour le séparateur.
write.csv2 utilise une virgule pour le point décimal et un point-virgule pour le séparateur, la convention Excel pour les fichiers CSV dans certains paramètres régionaux d'Europe occidentale.
Ces wrappers sont délibérément rigides: ils sont conçus pour garantir que les bonnes conventions sont utilisées pour écrire un fichier valide. Les tentatives de modification de append, col.names, sep, dec ou qmethod sont ignorées, avec un avertissement.
Donc, non seulement par défaut, ce séparateur le force. Utilisation
write.table(data,file="data.csv",sep=",",dec = " ")
Vous pouvez également utiliser l'écrivain CSV rapide "fwrite" avec l'option "sep =;" .. détails