0
おそらくかなり単純な答えですが、ループ内で複数の.txtファイルを.csvファイルに変換するときに問題がありました。私はそれらをマージまたは追加したくない、71個の.txtファイルを71個の.csvファイルに変換するだけです。ループ:複数の.txtを単一のディレクトリで.csvに変換する[Using R]
私はこのスレッドに頼る私のコードと他の質問を参照するために私の最善を尽くしました。 create a loop: convert .txt to .csv in R
私はそれに適応して、これは私がこれまで持っているものです。
filelist = list.files(pattern = ".txt")
for (i in 1:length(filelist)) {
cur.input.file <- filelist[i]
cur.output.file <- paste0(cur.input.file, ".csv")
print(paste("Processing the file:", cur.input.file))
# If the input file has less than 11 rows you will reveive the error message:
# "Error in read.table: no lines available in input")
data = read.delim(cur.input.file, header = TRUE)
write.table(data, file=cur.output.file, sep=",", col.names=TRUE, row.names=FALSE)
}
しかし、私の結果は次のように出てきます:
[1] "Processing the file: filename1.txt.txt"
[1] "Processing the file: filename2.txt.txt"
[1] "Processing the file: filename3.txt.txt"
[1] "Processing the file: filename4.txt.txt"
[1] "Processing the file: filename5.txt.txt"
フォーマットがすべて失敗しています。
アドバイス/何が間違っていますか?
乾杯とありがとうございます。あなたは常にあなたの要件ごとにread.tableをしてwrite.csv機能でパラメータを追加することができます
filelist <- list.files(pattern = ".txt")
someVar <- lapply(filelist, function(x) {
textfile <- read.table(x)
write.csv(textfile,
file = sub(pattern = "\\.txt$", replacement = ".csv", x = x))
})
:
たぶん 'サブ(パターン= "\\。のtxt $" は、交換= ".CSV"、X = x)'は代わりに 'ペーストの()'について書き込まれたファイル名。古い拡張を削除し、スペースを挿入せずに '.csv'で置き換えたいとします。 – Gregor
ありがとう、私の答えを変更! – Sumedh
SumedhとGregorに感謝します!あなたのコメントの組み合わせは完璧に機能しました。 –