簡體   English   中英

R從多個數據框中循環提取變量

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM