各ステップで変化する基準に基づいて、特定の SQL クエリを出力する for ループを作成しようとしています。さらに、それらを作成するステップに基づいて出力名を指定しようとしています。たとえば、ステップ 1 では、種 1 というテーブルが出力されます。私が書き込もうとしたコードは以下のとおりです。答えは簡単だと思いますが、私の人生では、これを表現する正しい方法がわかりません. よろしくお願いいたします。
for (i in 1:15) {
Species[i]<-sqldf("SELECT StartYear, StartMonthNo, RegionCode, CommonName, EstimatedBiomassg, ScaledProportionofDominantNektonBiomass
FROM TrawlBiomassbyMonth
WHERE CommonName = TopSpecies[i,1]
AND RegionCode=1")
Species[i]TimeSeries<-sqldf("SELECT TimeSeries.StartYear, TimeSeries.StartMonthNo, CommonName, EstimatedBiomassg, ScaledProportionofDominantNektonBiomass
FROM TimeSeries
LEFT JOIN Species[i]
ON TimeSeries.StartYear = Species1.StartYear
AND TimeSeries.StartMonthNo = Species1.StartMonthNo")
Species[i]TimeSeries[is.na(Species[i]TimeSeries)] <- 0}
編集
簡単な例を次に示します。
for (i in 1:2) {
Species[i]<-sqldf("SELECT StartYear, StartMonthNo, CommonName, Biomass
FROM ExampleBiomass
WHERE CommonName = ExampleTopSpecies[i,1])}
バイオマスの排出量
structure(list(StartYear = c(1985L, 1985L, 1985L, 1985L, 1985L,
1985L, 1985L, 1985L, 1985L, 1985L, 1985L, 1985L, 1986L, 1986L,
1986L, 1986L, 1986L, 1986L, 1986L, 1986L, 1986L, 1986L, 1986L,
1986L), StartMonthNo = c(1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L,
10L, 11L, 12L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L,
12L), CommonName = structure(c(1L, 1L, 2L, 2L, 1L, 1L, 1L, 2L,
2L, 1L, 1L, 1L, 2L, 2L, 1L, 1L, 1L, 2L, 2L, 1L, 1L, 1L, 2L, 2L
), .Label = c("Ninja", "Pirate"), class = "factor"), Biomass = c(26L,
107L, 126L, 35L, 84L, 147L, 98L, 141L, 112L, 43L, 28L, 79L, 36L,
126L, 31L, 89L, 133L, 34L, 38L, 117L, 92L, 81L, 93L, 127L)), .Names = c("StartYear",
"StartMonthNo", "CommonName", "Biomass"), class = "data.frame", row.names = c(NA,
-24L))
TopSpeciesのdput
structure(list(CommonName = structure(1:2, .Label = c("Ninja",
"Pirate"), class = "factor"), Biomass = c(500L, 450L)), .Names = c("CommonName",
"Biomass"), class = "data.frame", row.names = c(NA, -2L))