これがすでにここで回答されている場合は申し訳ありませんが、私の問題については何も見つかりません。
私は年月の時系列と、多くの種のバイオマスの時系列データを持っています。15 の特定の種の時系列を分離する必要があります。残念ながら、特定の月に特定の種の個体に遭遇しなかった場合、データは入力されず、0 があるはずの時系列にギャップが残ります。これを改善するために、種データ (右側のテーブル) を完全な時系列 (左側のテーブル) に左結合しようとしています。残念ながら、私の出力結合ではまだデータのない月が欠落しています。たとえば、1986 年の月 1 が欠落しています。これは、右側のテーブルにその月のデータがないためです。左結合にはこれらの行が含まれるべきだと思っていましたが、右側の列は空白のままにしました。
私は以下のコードを持っています。あなたが提案できるものは何でもいただければ幸いです。ありがとう!
Species1<-sqldf("SELECT TimeSeries.StartYear, TimeSeries.StartMonthNo, CommonName, EstimatedBiomassg, ScaledProportionofDominantNektonBiomass
FROM TimeSeries
LEFT OUTER JOIN TrawlBiomassbyMonth
ON TimeSeries.StartYear = TrawlBiomassbyMonth.StartYear
AND TimeSeries.StartMonthNo = TrawlBiomassbyMonth.StartMonthNo
WHERE CommonName = 'White shrimp'
AND RegionCode = 1")
編集
自分で答えて申し訳ありませんが、その方法を理解したので、他の誰かがこの同じ問題に遭遇した場合に備えて、これを残しておきたいと思いました。問題は、右側のテーブルだけが結合に入力されるのではなく、最終出力を制限する WHERE 引数にありました。私が使用したコードは以下です。
Species1<-sqldf("SELECT StartYear, StartMonthNo, RegionCode, CommonName, EstimatedBiomassg, ScaledProportionofDominantNektonBiomass
FROM TrawlBiomassbyMonth
WHERE CommonName='White shrimp'
AND RegionCode=1")
Species1TimeSeries<-sqldf("SELECT TimeSeries.StartYear, TimeSeries.StartMonthNo, CommonName, EstimatedBiomassg, ScaledProportionofDominantNektonBiomass
FROM TimeSeries
LEFT JOIN Species1
ON TimeSeries.StartYear = Species1.StartYear
AND TimeSeries.StartMonthNo = Species1.StartMonthNo")