私は2つのテーブルselectVDemとDTを持っています。2番目のテーブルとのマッチングに基づいてテーブルに新しいカラムを追加する
DTは、月 - 年と年の国を出てマーキングの列がありselectVDemは、次の見出しを持っているのに対し、
Country MonthofDate Size Year
1: Benin 1997-01-01 18 1997
2: Benin 1997-02-01 18 1997
3: Benin 1997-03-01 18 1997
4: Benin 1997-04-01 18 1997
5: Benin 1997-05-01 18 1997
---
3506: Zimbabwe 2015-07-01 38 2015
3507: Zimbabwe 2015-08-01 38 2015
3508: Zimbabwe 2015-09-01 42 2015
3509: Zimbabwe 2015-10-01 42 2015
3510: Zimbabwe 2015-11-01 42 2015
Year Country EqualityResources EqualityProtec PercentSufferage LocalGov RegionGov ExecCorrupt PolCorrupt
私がEqualityResources EqualityProtec PercentSufferage LocalGov RegionGov ExecCorrupt PolCorrupt値を追加したいです年と国の値が一致する新しい列としてのDT表の終わり。 forループを使用せずにこれを行う方法はありますか?私はすでに2つの方法を試しました。
DT$EqualityResources <- subset(DT$Country == selectVDem$Country & DT$Year == `selectVDem$Year, select = EqualityResources)`
これは私も関数を記述し、中に私の
エラーをエラーを与える適用する機能
getVDem <- function(vDemVal, country, year, vDem){ result <- vDem[vDem$Country == country & vDem$Year == year,] finalResult <- vDem$vDemVal return(finalResult) } DT$EqualityResources <- apply(DT, 1, getVDem(selectVDem, DT$Country, `DT$Year,'EqualityResources'))#subset(selectVDem,DT$Country == Country & DT$Year == Year, select = EqualityResources)`
を使用してみましたが、エラーに
Error in subset.default(DT$Country == selectVDem$Country & DT$Year == : argument "subset" is missing, with no default In addition: Warning messages: 1: In is.na(e1) | is.na(e2) : longer object length is not a multiple of shorter object length 2: In `==.default`(DT$Country, selectVDem$Country) : longer object length is not a multiple of shorter object length 3: In DT$Year == selectVDem$Year : longer object length is not a multiple of shorter object length
を引き起こしvDem $ Country:$演算子はアトミックには無効ですv医師
どうすればよいですか?
マージのようですか? selectVDemの列を国と年に基づいてマージしようとしています - 私が間違っていれば私を修正してください –
DTはselectVDemよりも多くの行を持っているので、マージできません。 selectVDemには1年分のローしかありません。しかし、私は、ベネルン1997のselectVDemから情報を取り出し、それを1997年にDTで12行すべてに追加することが可能かどうか疑問に思っています。 –