2017-04-22 1 views
0

Ich habe diesen Code zum Glätten eines Spektrums!Ich bin ein Anfänger. wie einen Code auf alle Dateien anwenden und neuen txt speichern?

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 ") 

Ich habe den Code bei der ersten Datei des Ordners angewendet! Wie kann ich es auf alle Dateien anwenden und wie kann ich die geglätteten Spektren als txt speichern? Datei?

+0

Welche Sprache ist das? Bitte passend etikettieren. –

Antwort

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")) 
} 

Sie sollten die for Schleife einführen über die list_tot iterieren. Es speichert die smooth_spectra in der Datei, mit dem gleichen Namen wie die Eingabedatei, mit _smoothed Vorwahl und .csv Erweiterung.

+0

danke. Ich habe write.csv in write.table und .csv in .txt geändert, weil ich txt brauche. Wie auch immer, ich habe einen Fehler: Fehler in as.data.frame.default (x [[i]], optional = TRUE, stringsAsFactors = stringsAsFactors): kann die Klasse "" smooth.spline "" nicht zu einem data.frame –

+0

@ zwingen AlbertoCaracciolo Wie möchten Sie es speichern? Ich habe die Antwort aktualisiert. – m0nhawk

+0

Ich mag es in einem neuen Ordner zu speichern (zum Beispiel "geglättet"), im selben Verzeichnis! –

Verwandte Themen