1

次のようなデータ フレームがあるとします。

df <- data.frame(id = rep(c(1001:1004), each = 3), value = c(1,1,4,1,2,3,2,2,5,1,5,6))

df
     id value
1  1001     1
2  1001     1
3  1001     4
4  1002     1
5  1002     2
6  1002     3
7  1003     2
8  1003     2
9  1003     5
10 1004     1
11 1004     5
12 1004     6

13等しい値3を持つ ID を返す良い方法は何1ですか? この場合、ID 1002持っている1だけでなく、持っていて3、除外されなければなりません。ID 1003に等しい値はなく1、除外されます。なのでID 1001 and 1004返還されます。ありがとう!

4

2 に答える 2

3

で 1 を含む ID を取得でき、df$id[df$value == 1]3 についても同様ですdf$id[df$value == 3]。あるセットを別のセットから除外するには、 を使用できますsetdiff

1 つのコマンドで:with(df,setdiff(id[value == 1],id[value == 3]))

于 2012-08-29T16:18:48.170 に答える
0

これは別の方法です。

unique(df$id[df$value==1][! df$id[df$value==1] %in% df$id[df$value==3]])
[1] 1001 1004
于 2016-06-30T03:52:57.703 に答える