從來就得到了下面的問題,至於現在,我沒有找到適用的答案。循環直通目錄和文件,並在新的direcotries以不同的名稱保存文件
從來就得到了存儲在子文件夾在下面的目錄的數據集的負載:
C:/Users/Desktop/Data Generation
子文件夾被follwing這種模式:
在模型1至3個可能的變化;以及250到750;歪斜1到3;而3月1日至3
例如:/Model 3/Model_3_750skew2mar2 or /Model 2/Model_2_250skew3mar1
在這些子文件夾我有我的數據集:M1_1
通M1_1000
或模型2 M2_1
通M2_1000
現在,我想我的數據集:M1_1
通M1_1000
並替換缺失值,並根據在那裏我得到了他們在新目錄中集保存這些數據:
C:/Users/Desktop/Data Generation/ NA /Model 1/Model_1_250skew1mar1
我能爲我的子目錄與follwing代碼的一個做到這一點:
files_M_neu <- list.files(path="C:/Users/Desktop/Data Generation/Model 1/Model_1_250skew1mar1",
pattern="M1_*[^list].dat", recursive=TRUE, full.names=TRUE)
dir.create("C:/Users/Desktop/Data Generation/NA")
dir.create("C:/Users/Desktop/Data Generation/NA/Model 1")
dir.create("C:/Users/Desktop/Data Generation/NA/Model 1/Model_1_250skew1mar1")
for(i in 1:length(files_M_neu)){
data <- read.table(files_M_neu[i], header=TRUE)
fix_missing <- function(x) {
x[x == 999] <- NA
x
}
data <- fix_missing(data)
write.table(data, paste("C:/Users/Desktop/Data Generation/NA/Model 1/Model_1_250skew1mar1/data[",i,"].dat"),
sep="\t", row.names = FALSE, col.names = FALSE)
rm(data)
}
我怎麼能自動完成這一過程,使我沒有上面的代碼54次?我想要一個乾淨的方式來:取得我的文件,取代缺失,並根據我從哪裏得到的目錄保存文件...
正如你可能猜到的,我是R新手,但我試過不同的東西,現在我沒有看到一個方法來得到任何接近的解決方案......
預先感謝您
非常感謝您!這幫助我很多! – AndySOWI