0

r の for ループが 1 回だけ実行されている間に誰かに教えてもらえますか? スクリプトは、約 5 つの主要なファイル内の約 200 のサブファイルのリストの csv ファイルを作成しようとしています。これが私のコードです:

ImpactGrid<- function(num, condition, CONDITION){


  #Set working directiory 

  for(i in num){

    if(i <10){
      filename <- paste("./EOBS DATA/ECA_blend_", condition, "/" ,CONDITION, "_STAID00000", i, ".txt", sep = "")
    }
    if(i >=10 & i < 100){
      filename <- paste("./EOBS DATA/ECA_blend_", condition, "/" ,CONDITION, "_STAID0000", i, ".txt", sep = "")
    }

    if(i>= 100){
      filename <- paste("./EOBS DATA/ECA_blend_", condition, "/" ,CONDITION, "_STAID000", i, ".txt", sep = "")
    }


con <- file(filename, "r")
data <- readLines(con)
close(con)
q <- data[21:length(data)] # removes non data before the data begins



Impactdata <- read.table(text = q, sep=',',fill=TRUE,colClasses='character',header = TRUE )

Savename <- paste("./EOBS DATA/",condition, "_csv_data/", condition,i, ".csv", sep = "")   



write.csv(Impactdata, Savename)  
x <- read.csv(paste("./EOBS DATA/",condition, "_csv_data/", condition,i, ".csv", sep = ""))  

return(head(x))
}
}
4

2 に答える 2

1

1:num は良い答えであり、問​​題になる可能性があると思いますが、for ループには最後の return() ステートメントを含むすべてが含まれているようです。したがって、 num がベクトルであったとしても、すべてのコードを 1 回だけループし、1 回のループ後に関数から return() を実行します。

于 2013-11-06T17:19:52.863 に答える