[英]R extract variable from multiple dataframe in loop
我從參數研究中得到了很多分析結果。 幸運的是,這里有一個輸出文件,用於保存輸出文件。 我需要保存文件名。 我使用了這個例程:
IndexJobs<-read.csv("C:/Users/.../File versione7.1/
"IndexJobs.csv",sep=",",header=TRUE,stringsAsFactors=FALSE)
dir<-IndexJobs$WORKDIR
Dir<-gsub("\\\\","/",dir)
Dir1<-gsub(" C","C",Dir)
現在我使用e來讀取CSV並創建不同的數據框
for(i in Dir1){
filepath <- file.path(paste(i,"eplusout.csv",sep=""))
dat<-NULL
dat<-read.table(filepath,header=TRUE,sep=",")
filenames <- substr(filepath,117,150)
names <-substr(filenames,1,21)
assign(names, dat)
}
現在,我想從每個數據庫中提取選定的變量,並將每個數據庫的每個變量放到單獨的數據庫中。 我也將變量和單個數據庫的名稱聯合起來,以便有一個清晰的數據庫進行分析。 我嘗試做點什么,但效果不好。 我試圖插入其他行:
for(i in Dir1){
filepath <- file.path(paste(i,"eplusout.csv",sep=""))
dat<-NULL
dat<-read.table(filepath,header=TRUE,sep=",")
filenames <- substr(filepath,117,150)
names <-substr(filenames,1,21)
assign(names, dat)
datTest<-dat$X5EC132.Surface.Outside.Face.Temperature..C..TimeStep.
nameTest<-paste(names,"_Test",sep="")
assign(nameTest,datTest)
DFtest=c[,nameTest]
}
但是對於每個i來說,DFtest都會被覆蓋,並且僅保留最后一個數據庫列。
有什么建議嗎?
如果將DFtest=c[,nameTest]
替換為,可能會起作用
DFtest[nameTest] <- get(nameTest)
或者,
DFtest[nameTest] <- datTest
此過程假定在運行循環之前對象DFtest
存在。
另一種方法是在運行循環之前創建一個空列表:
DFtest <- list()
在循環中,可以使用以下命令:
DFtest[[nameTest]] <- datTest
循環后,可以使用以下命令組合列表DFtest
中的所有值
do.call("cbind", DFtest)
請注意,這僅在列表DFtest
中的所有向量都具有相同的長度DFtest
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.