2017-04-22 1 views
0

私はスペクトルを滑らかにするためにこのコードを持っています!私は初心者です。どのようにすべてのファイルにコードを適用し、新しいtxtを保存する?

list_tot <- list.files(path = ".", pattern="*.txt") 
num <- as.integer(length(list_tot)) 


library(data.table) 
DT_final_tot <- fread(file = list_tot[1]) 
setnames(DT_final_tot, c("Raman shift (cm-1)", list_tot[1])) 

x <-DT_final_tot[[1]] 
y <-DT_final_tot[[2]] 

smooth_spectra <- smooth.spline(x,y, spar = NULL) 
plot(x,y, type = "l", main="raw spectra", col="green") 
lines(smooth_spectra,type = "l") 
plot(smooth_spectra,type = "l", main="smooth spectra ") 

私はこのフォルダの最初のファイルにコードを適用しました!どのようにすべてのファイルに適用することができ、どのようにsmoothedスペクトルをtxtとして保存することができますか?ファイル?

+0

これはどの言語ですか?適切なタグを付けてください。 –

答えて

1
library(data.table) 
list_tot <- list.files(path = ".", pattern="*.txt") 
num <- as.integer(length(list_tot)) 

for(fname in list_tot) { 
    DT_final_tot <- fread(file = fname) 
    setnames(DT_final_tot, c("Raman shift (cm-1)", fname)) 

    x <-DT_final_tot[[1]] 
    y <-DT_final_tot[[2]] 

    smooth_spectra <- smooth.spline(x,y, spar = NULL) 
    plot(x,y, type = "l", main="raw spectra", col="green") 
    lines(smooth_spectra,type = "l") 
    plot(smooth_spectra,type = "l", main="smooth spectra ") 

    dump(c("smooth_spectra"), file=paste0(tools::file_path_sans_ext(fname), "_smoothed", ".csv")) 
} 

あなたはlist_totを反復するforループを導入すべきです。ファイル内のsmooth_spectraを入力ファイルと同じ名前で保存します。接頭辞は_smoothed.csvです。

+0

ありがとうございます。私はtxtが必要なのでwrite.tableと.csvで.txtのwrite.csvを変更しました。とにかくエラーが発生しました:as.data.frame.default(x [[i]]、オプション= TRUE、stringsAsFactors = stringsAsFactors)のエラー: はdata.frameにクラス "" smooth.spline ""を強制できません –

+0

@ AlbertoCaraccioloどのようにそれを保存しますか?私は答えを更新しました。 – m0nhawk

+0

私は、同じディレクトリにある新しいフォルダ(例:「smoothed」と呼ばれます)に保存したいのです! –

関連する問題