web-dev-qa-db-ja.com

セパレーター ';'を設定するwrite.csv

私は次のコードを持っています:

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

残念ながら、セパレータはまだ「、」です:

iEpisodeId,iPatientId,sTitle,sICPc,dStart,dEnd,bProblem

コードを実行すると、次のようになります。

警告メッセージ:

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 = ";",  :

'sep'を設定する試みは無視されました

何が悪いのですか?

7
dsent

まず、再現可能な例を提供する必要があります。

ただし、write.csv2デフォルトでは、セミコロンを区切り文字として使用します。

9

ドキュメント https://stat.ethz.ch/R-manual/R-devel/library/utils/html/write.table.html は言う:

write.csvは "。"を使用します。小数点とカンマで区切ります。

write.csv2は、小数点にカンマを使用し、区切り記号にセミコロンを使用します。これは、一部の西ヨーロッパロケールのCSVファイルのExcelの規則です。

これらのラッパーは意図的に柔軟性がありません。有効なファイルを書き込むために正しい規則が使用されるように設計されています。 append、col.names、sep、dec、またはqmethodを変更しようとすると、警告が表示されて無視されます。

したがって、デフォルトでこのセパレーターが使用されるだけでなく、強制されます。使用する

write.table(data,file="data.csv",sep=",",dec = " ")
7
ynux

オプション「sep =;」で「fwrite」高速CSVライターを使用することもできます。 ..詳細

0
Andrii