2017-07-19 15 views
0
A B 
15 O 
20 O 
12 C 
15 C 
50 C 
25 O 
50 O 
19 O 
50 M 

私は上記の形式のデータを持っています。 「C」Rプログラミング:別の列の値に基づいて列の重複を削除する方法

予想される出力、私は列にユニークな要素に基づいて を一意の行を選択したい。しかし包み、その後、私は、列Bを参照すると、コードを持っているものを選択する必要があります重複があります

A B 
20 O 
12 C 
15 C 
50 C 
25 O 
19 O 

誰でも手助けできます..

+0

unique要素を取得することができるデータ上記のように示された(またはより良いはdput' 'である)が、イム他の人がイメージからそれをコピーすることができないので、年齢はお勧めできません。私は以前の編集にロールバックした – akrun

答えて

1

data.tableを使用できます。 'A' によってグループ化(setDT(df1)) 'data.table' から 'data.frame' は、変換論理条件(B==O)に基づいorder、そしてhead

library(data.table) 
setDT(df1)[order(B=="O"), head(.SD, 1), A] 
# A B 
#1: 12 C 
#2: 15 C 
#3: 50 C 
#4: 20 O 
#5: 25 O 
#6: 19 O 

で最初の行を取得しますそれともこれはorder INGでbase Rで行われ、持っている方が良いですduplicated

df2 <- df1[order(df1$A, df1$B=="O"),] 
df2[!duplicated(df2$A),] 
関連する問題