Grepl kullanarak terimleri bulmaya çalışıyorum ve çok fazla yanlış pozitif alıyorum. Listedeki herhangi bir terimin iki başarılı eşleşmesi için bir yol olabileceğini umuyordum (Verilerimin bir segmenti için manuel kodlama var ve en azından kabaca buna karşılık otomasyonu almaya çalışıyorum ama yaklaşık 5 tane var) Manuel kodlama ile yaptığım gibi çok pozitif zamanlar). Grepl'i TRUE'yi tetiklemek için birden fazla eşleşme gerektiren herhangi bir argümanı görmedim. Bir TRUE bulgusunu tetiklemek için iki eşleşme gerektirecek bir yol var mı? Yoksa kullanmam gereken başka bir işlev var mı?grepl ile TRUE için sadece bir tane yerine iki eşleşme gerekli midir?
GenericColumn <- cbind(grepl(Genericpattern, Statement$Statement.Text, ignore.case = TRUE))
DÜZENLEME:
İştedaha somut örnektir:
şimdi olduğu gibiExamplepattern <- 'apple|orange'
ExampleColumn <- cbind(grepl(Examplepattern, Rexample$Statement.Text, ignore.case = TRUE))
, bunların hepsi grepl ile gerçek tetikleyecektir. Sadece iki referansı olan öğeleri doğru tetiklemeyi isterdim.
Örnek veriler:
Rexample <- structure(list(Statement.Text = structure(c(2L, 1L, 3L, 5L, 4L
), .Label = c("This apple is a test about an apple.", "This is a test about apples.",
"This orange is a test about apples.", "This orange is a test about oranges.",
"This orange is a test."), class = "factor")), .Names = "Statement.Text", row.names = c(NA,
5L), class = "data.frame")
İstenilen Çıktı:, DOĞRU YANLIŞ, DOĞRU, DOĞRU, YANLIŞ
En iyi beton örneğinin ne olduğundan emin değilim - gerçek kod yok İçinde bir ton bilgi var. 'code 'Genericpattern <- paste (Genericlist, sep =" ", daraltma =' | ') İçinde yaklaşık 50 terim var. webscraped metin kadar. Temel olarak sadece artan bir doğruluk oranı olduğunu anlamaya çalışıyorum çünkü sadece bir eşleşmenin çok hassas olması bir metriğe benziyor, öyle görünüyor ki, iki terimi (elma ve portakallar ya da elmalar) eşleştirmek zorunda kalacaklarını umuyordum. elma, yani iki farklı veya aynı iki kere). – Matthew
[Nasıl yeniden üretilebilir bir R örneği yazılır] bölümüne bakın (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example/5963610#5963610) . Gerçekten, regex değil, bir HTML ayrıştırıcısı ile ayrıştırma yapmanız gerekir. "rvest :: html_nodes", CSS veya XPath seçicileriyle eşleştirilmiş hile yapmalıdır. – alistaire
Verileri zaten bir csv'de var, bu yüzden zaten bir web sitesi üzerinden manipüle edilebilir bir dosyaya giriyorum - sadece şu anda bir kez yerine iki kez terimleri eşleştirmeye çalışıyorum.Tekrarlanabilir bir örnek ile gelip gelemeyeceğimi görmek için bu bağlantıyı takip edeceğim, ancak bir özellik sorunu olarak çok fazla bir hata sorunu olmamasına rağmen. – Matthew