0
我有一個數據框,其中列年|國家|增長率。我想比較每個國家的增長率和我選擇的其他國家的增長率,並篩選特定年份增長率較高的國家。比較數據框中的值和過濾
所以,我認爲第一步是把所有國家的增長率和我選擇的國家之間的差異,我設法遠遠地得到這樣的:
difference <- ddply(data, .(year), transform,
x=growth_rate - 4)
這會給我第一個數據幀我想,只有硬編碼的4應該是所選國家(比如說加拿大)在相應年份的增長率。我試過類似的東西:
difference <- ddply(data, .(year), transform,
x=growth_rate - data[country=="Canada",]$growth_rate)
但這是不正確的。
一旦我得到這個正確的,下一步將過濾僅x> 0的那些行。
任何幫助將不勝感激。
這是我的數據幀是什麼樣子:
> head(data)
iso2c country growth_rate year
1 1A Arab World 3.911548 2012
2 1A Arab World 5.282387 2011
3 1A Arab World 4.648676 2010
4 1A Arab World 2.253365 2009
5 1A Arab World 6.509886 2008
6 1A Arab World 5.634384 2007
謝謝,我不熟悉data.table庫。當我在我的數據上試試這個時,我得到以下錯誤:'[.data.frame'(data,,':='(ToKeep,growth_rate> .SD [country ==: unused argument(by = year) – user1754606
對不起,這個評論功能很糟糕,我有一個名爲year的列,我在我的問題中加入了這個列 – user1754606
您需要先安裝'data.table'包,然後才能使用此代碼,將dt聲明爲data.frame將阻止代碼工作,因爲它使用data.table的特定功能 – TheComeOnMan