3 Temmuz 2010, CUMARTESÄ°
İki veri karşılaştırın.veri satırları bulmak için çerçeveler.yok çerçeve 1 veri.çerçeve 2
Aşağıdaki 2 Veri var.çerçeve:
a1 <- data.frame(a = 1:5, b=letters[1:5])
a2 <- data.frame(a = 1:3, b=letters[1:3])
A1 a2 olmayan satırı bulmak istiyorum.
Bir bu tip işlemler fonksiyonuna var mı?
(s.s: bunun için bir çözüm, eğer birileri daha hazırlanmış bir kod yapımı eğer ben sadece merak ediyorum) yazdım
İşte benim çözüm:
a1 <- data.frame(a = 1:5, b=letters[1:5])
a2 <- data.frame(a = 1:3, b=letters[1:3])
rows.in.a1.that.are.not.in.a2 <- function(a1,a2)
{
a1.vec <- apply(a1, 1, paste, collapse = "")
a2.vec <- apply(a2, 1, paste, collapse = "")
a1.without.a2.rows <- a1[!a1.vec %in% a2.vec,]
return(a1.without.a2.rows)
}
rows.in.a1.that.are.not.in.a2(a1,a2)
CEVAP
29 Ocak 2013, Salı
SQLDF güzel bir çözüm sağlar
a1 <- data.frame(a = 1:5, b=letters[1:5])
a2 <- data.frame(a = 1:3, b=letters[1:3])
require(sqldf)
a1NotIna2 <- sqldf('SELECT * FROM a1 EXCEPT SELECT * FROM a2')
Ve her ikisi de veri iletimi ile olan satır:
a1Ina2 <- sqldf('SELECT * FROM a1 INTERSECT SELECT * FROM a2')
Dplyr yeni sürümü fonksiyon anti_join, karşılaştırmalar, tam olarak bu tür vardır
require(dplyr)
anti_join(a1,a2)
Ve ayrıca a2 olan a1 filtre satırları semi_join
semi_join(a1,a2)
Bunu PaylaÅŸ:
Veri NAs ile satırları kaldırın.çerçev...
Üç sütun veri matrisi için çerçeve yen...
Nasıl R veri bir çerçeve için bir tabl...
Nasıl alt için birden fazla koşul veri...
bir öğe veri-öznitelik değeri için bir...