2017-09-04 4 views
0

私はこのような(以下を参照)ような(指示された)二項データセットを持っています。私が今やりたいことは、1年に1回だけ観察することです。この場合、1992年(AFG 1992年)と1993年(AFG 1993年)の観測はそれぞれ1回のみだったが、他の観測は削除された。同じ年のどの観測結果がデータに保存されているかは問題ではありません(country2には興味がありません)。データ変換:ダイアディックから観測データへR

country1 country2 year X X1 
Afghanistan Colombia 1992 1 0.44 
Afghanistan Venezuela 1992 1 0.45 
Afghanistan Peru  1992 1 0.46 
Afghanistan Brazil  1992 1 0.47 
Afghanistan Bolivia  1992 1 0.48 
Afghanistan Chile  1992 1 0.49 
Afghanistan Argentina 1992 1 0.50 
Afghanistan Uruguay  1993 0 0.51 
Afghanistan USA   1993 0 0.52 
Afghanistan Canada  1993 0 0.53 
Afghanistan UK   1993 0 0.54 
Afghanistan Netherlands 1993 0 0.55 
Afghanistan Belgium  1993 0 0.56 
Afghanistan Luxembourg 1993 0 0.57 
Afghanistan France  1993 0 0.58 

私の試み:

newdata<- data %>% 
    group_by(country1,year) %>% 
    summarise() %>% 
    select(unique.x=country1, unique.y=year) 

これは動作しますが、どのように私は "NEWDATA" の "データ" から、他のすべての変数を保持していますか?私はこれを行う方法について考えることはできません(これはもっと実用的です)。どんな助け?

所望の結果

country1  year X 
    Afghanistan 1991 1 
    Afghanistan 1992 0 

dput(データ)構造(リスト(COUNTRY1 =構造(C(1L、1L、1L、1L、1L、1L、 1L、1L、1L、 1L、1L、1L、1L、1L、1L、1L、1L、1L、1L、1L、1L、1L、1L、 1L、1L、1L、1L、1L、1L、1L、1L、1L、1L)、 .Label = "Afghanistan"、クラス = "因子")、 country2 =構造体(c、8L、33L、24L、5L、4L、7L、1L、32L、 31L、6L、30L、21L、3L、19L 、14L、29L、27L、26L、15L、25L、.Label = c( "Argentina"、 "Austria"、 "Belgium"、 "Bolivia、Plurinational"、 "Bolivia"、 "Plurinational" 「 『ブラジル』、 『カナダ』、 『チリ』、 『コロンビア』、 『キューバ』、 『チェコ』、 『デンマーク』、 『ドミニカ共和国』、 『フィンランド』、 『フランス』、」ドイツの州」、 "ギニアビサウ"、 "ハンガリー"、 "イタリア"、 "ルクセンブルク"、 "モーリタニア"、 "オランダ"、 "ニジェール"、 "ノルウェー"、 "ペルー"、 "ポーランド"、 "ポルトガル"、 「スペイン」、「スウェーデン」、「スイス」、「英国」、「米国」、 「ウルグアイ」、「ベネズエラ、ボリビア共和国」)、クラス=「因子」)、 年= c(1992L 、199L、1993L、1993L、1993L、1994L、 1 994L、1994L、1994L、1994L、1994L、1994L、1994L、1995L、1995L、 1995L、1995L、1995L、1995L、1995L、1995L、1995L、1995L)、X = C (1L、1L、1L、1L、1L 、1L、1L、0L、0L、0L、0L、0L、0L、 0L、0L、0L、0L、0L、0L、0L、0L、0L、0L、1L、1L、1L、1L、1L、 1L 、1L、1L、1L、1L)、X1が= Cの(0.44、0.45、0.46、0.47、0.48、 0.49、0.5、0.51、0.52、0.53、0.54、0.55、0.56、0.57、0.58、 0.59、0.6、 .Names = c( "country1"、 "country2"、 "year"、 "country1"、 "country2"、 "country1"、 "country2"、 "year2" "、" X "、" X1 ")、class =" data.frame "、 row.names = c(NA、 -33L))

+1

欲しいものを与えます回答) 'あなたの場合 –

+0

それは動作しません、私はそれを試しました – FKG

+0

それはあなたの例のデータで動作します。 –

答えて

0

は、私は本当にあなたの質問を理解していないが、あなたの所望の出力を得るためにあなたが使用することができます。

data %>% 
    group_by(country1, year) %>% 
    summarise(X = mean(X)) 

をあなたの全体のdata.frameにこれを適用すると、心に留めて、このコードでは、平均値を返します。すべての値のXには、country1yearの固有の組み合わせがあります。

0

あなたが試すことができます:

data %>% 
    group_by(year) %>% 
    top_n(1) %>% 
    select(country1, X) 
1

newdata <- olddata[!duplicated(olddata$year),]

を質問

newdata <- olddata[!duplicated(paste(olddata$country1, olddata$year)),]

はあなたが私はあなただけ `ユニーク(データ操作を行うことができると思いますが

関連する問題