2017-07-26 4 views
0

私はGeneral Social Surveyを見て、あるレベルの変数に他のレベルより比例して多くのNAがあるかどうかを調べようとしています。ここに私のdfの頭がある。変数のレベルごとに欠損データをどのように数えますか?

year PartyBinary agekdbrn 
1 1972  Other  NA 
2 1972 Democrat  NA 
3 1972  Other  NA 

これは既にここではわかりませんが、これは奇妙に思えます。私はいくつかの方法を試しましたが、それらはすべて自動的にドロップするか、または単にNAデータを無視するようです。たとえば:

gss.subset%>% 
filter(agekdbrn=="NA")%>% 
group_by(year)%>% 
summarise(count(agekdbrn)) 

これは与える: tibble:0×2 ... 2つの変数で:年、(agekdbrn)を数え、私は同じコードを実行して、正しくないことが判明し

変数Iは中のNAを見ることができるもう一つの試みでした:。

「function_list [K]でエラー:オブジェクトのagekdbrn 'が見つかりません」私にエラーメッセージが表示されました
gss.subset%>% 
group_by(year)%>% 
sum(is.na(agekdbrn)) 

全体の目的の私の理解に違反し、 gss.subset%>%pipeのうちの1つです。以下も失敗しました:

ggplot(gss.subset, 
aes(x=agekdbrn))+geom_bar(position="fill")+facet_wrap(~year) 

は、NASはなくて私が頻繁にのために感謝しています何かをプロットを与えたが、今に悩まさ。もう一つの試行は次の通りでした:

gss.subset%>% 
filter(agekdbrn=="98"|agekdbrn=="99"|agekdbrn=="IAP")%>% 
ggplot(aes(x=PartyBinary, fill=agekdbrn))+geom_bar(position="fill") 

これは、私には単純に、灰色のプロットの灰色の背景を与えます。 GSSコードブック(http://gss.norc.org/documents/codebook/GSS_Codebook.pdf、CTRL + F "agekdbrn"で私が何を話しているかを見てください)で判断すると、おそらくNAsは実際には98、99、または "IAP"としてコード化されていると考えましたが、上記のように、

私は何をすべきか分かりません。明らかに、データがランダムまたは非ランダムに欠落していないかどうかを確認する方法があるに違いありませんが、それはどうなるか分かりません。あなたは、コード

gss.subset %>% 
    group_by(year) %>% 
    sum(is.na(agekdbrn)) 

のあなたの第三のチャンクにまとめる追加する必要が

+0

は 'NA == NA'を試してみてくださいする必要があります - それは' NA'を返します。フィルターを使用してNAにフィルターをかけます。 – cmaher

+0

cmaherとB Williamsの両方のソリューションが出力を出しますが、それらは半分しか得られません:agekdbrn変数にNAsがあると教えてくれますが、 PartyBinaryによるNAsの割合。 PartyBinaryによるagekdbrnへの全回答の割合として、NAを視覚的に、または表で表現できるようにする方法はありますか? – emory989

答えて

0

gss.subset %>% 
    group_by(year) %>% 
    summarise(sum(is.na(agekdbrn))) 
+2

'count'または' tally'もここで動作します(group_by%>%other_functionを置き換えます) – Frank

関連する問題