2012-12-07 13 views
11

PHP için bir similar question var, ancak R ile çalışıyorum ve çözümü sorunuma çeviremiyorum.Tüm çoğaltmaları NONE'in bir veri çerçevesinde kalması için nasıl kaldırabilirim?

Bu satırda, bazı satırların kesinlikle aynı olduğu 10 satır ve 50 sütun var. Üzerinde benzersiz bir karakter kullanırsam, bir satır alırım - diyelim - "tip", ama aslında istediğim sadece bir kez görünen satırları elde etmektir. Bunu nasıl başarabileceğimi bilen var mı?

Kümeleri ve ısı haritalarını el ile ayıklamak için elime bir göz atabilirim, ancak yukarıda bahsettiğimden daha fazla veri çerçevem ​​var (100 satıra kadar).

cevap

33

Bu sadece bir defa görünür satırları çıkartacaktır (veri çerçevesi varsayarak df adlandırılır):

df[!(duplicated(df) | duplicated(df, fromLast = TRUE)), ] 

o nasıl çalışır: fonksiyonunu duplicated testleri bir çizgi, en azından ikinci kez görünüp görünmediğini Birinci satırdan başlıyor. fromLast = TRUE argümanı kullanılırsa, fonksiyon son satırdan başlar.

Her ikisi de boolean sonuçları, | (mantıksal 'veya') ile tüm satırların bir kereden fazla göründüğünü gösteren yeni bir vektörle birleştirilir. Bunun sonucu ! kullanılarak reddedilir, böylece sadece bir kez görünen çizgiler gösteren bir boole vektörü oluşturulur.

İlgili konular