2017-08-10 6 views
0

私は人の名前とID番号のリストを持つデータを持っています。同じ名前の人はすべて同じID番号を持つわけではありませんが、名前の異なる人はすべて異なるID番号を持つ必要があります。このように:R IDエラーチェック(異なる名前、同じID)

Name david david john john john john megan bill barbara chris chris 

ID  1  1 2 2 2 3 4 5 6 7 8 

これらのIDが正しいことを確認する必要があります。だから、私は "ID番号が同じだがその名前は異なる場合にだけサブセット"と言うコードを書いたがっているので(IDのエラーをサブセット化するだけなので)。私は

df1<-df(subset(duplicated(df$Name) & duplicated(df$ID))) 
Error in subset.default(duplicated(df$officer) & duplicated(df$ID)) : 
    argument "subset" is missing, with no default 

を試みたが、それは動作しませんでしたので、私はどこまでもこれを開始するために理解していないと私はそれが一致し、名前とID番号を比較するためにRを教えてくれません知っています。

ありがとうございます。ここで

下のコメントで情報を更新しました

答えて

0

は、いくつかのテストデータである:私が正しくあなたの問題を理解していれば

> DF <- data.frame(name = c("A", "A", "A", "B", "B", "C"), id=c(1,1,2,3,4,4)) 
> DF 
    name id 
1 A 1 
2 A 1 
3 A 2 
4 B 3 
5 B 4 
6 C 4 

だから...あなたはに問題があるという情報を取得したいですid 4には2つの異なる名前(BとC)が表示されるためです。

library(dplyr) 
DF %>% group_by(id) %>% distinct(name) %>% tally() 
# A tibble: 4 x 2 
    id  n 
    <dbl> <int> 
1  1  1 
2  2  1 
3  3  1 
4  4  2 

ここでは概要を取得し、id 4の2つの異なる名前(nが)あなたはfilterのみに複数の名前

> DF %>% group_by(id) %>% distinct(name) %>% tally() %>% filter(n > 1) 
# A tibble: 1 x 2 
    id  n 
    <dbl> <int> 
1  4  2 

でのIDが表示されることを組み合わせることができますがあることがわかりそれが助けになりましたか?

+0

あなたは正しいです!私はサブセットのコマンドを台無しにしていたが、私が書き留めたコマンドは、とにかくやりたいことを正確に実行していない。このコマンドを実行すると、名前とID番号が異なるだけでなく、データセット全体が表示されます。 :( – Rachel

+0

申し訳ありませんが、私はこのウェブサイトのフォーマットと一致するようにデータをフォーマットすることに苦労していました!!!!私が与えた上記の例はうまくいます - それをサブセット化すると結果は0になります。クリスのIDも3ですが、それは問題になります。そして、私はデータセットにこれらの人が何人いるかを知る必要があります(名前が異なるがID番号は同じです)データで) – Rachel

+0

はい!!!それは働いた!!とてもそんなにありがとう!!あなたは信じられないほどスマートです! – Rachel

関連する問題