Ich habe dieses Dokument Begriff Matrix aus Paket R {tm}, die ich auf as.matrix
erzwungen habe. MWE hier:Subsetting eine Matrix, Adressierung colnames
> inspect(dtm[1:ncorpus, intersect(colnames(dtm), thai_list)])
<<DocumentTermMatrix (documents: 15, terms: 4)>>
Non-/sparse entries: 17/43
Sparsity : 72%
Maximal term length: 12
Weighting : term frequency (tf)
Terms
Docs toyota_suv gmotors_suv ford_suv nissan_suv
1 0 1 0 0
2 0 1 0 0
3 0 1 0 0
4 0 2 0 0
5 0 4 0 0
6 1 1 0 0
7 1 1 0 0
8 0 1 0 0
9 0 1 0 0
10 0 1 0 0
Ich brauche diese as.matrix(dtm)
der Teilmenge, so dass ich nur Dokumente (Zeilen) erhalten, die zu toyota_suv
aber kein anderes Fahrzeug beziehen. Ich bekomme eine Teilmenge für einen Begriff (toyota_suv) mit dmat<-as.matrix(dtm[1:ncorpus, intersect(colnames(dtm), "toyota_suv")])
, die gut funktioniert. Wie richte ich eine Abfrage ein: Dokumente, in denen toyota_suv nicht null ist, aber Werte von nicht-toyota_suv-Spalten null sind? Ich hätte spaltenweise ==0
spezifizieren können, aber diese Matrix wird dynamisch erzeugt. In einigen Märkten gibt es vielleicht vier Autos, in einigen Märkten können es zehn sein. Ich kann colnames vorher nicht angeben. Wie kombiniere ich (dynamisch) alle Nicht-toyota_suv Spalten auf Null, wie all_others == 0? Jede Hilfe wird sehr geschätzt.
Dank @Ken Benoit: Ich war fast da. – Pradeep
Bearbeitungszeit. Ich habe ein weiteres Objekt von Nicht-toyota_suv-Spalten erstellt: 'x.df3 <-x.df [, Namen (x.df)! =" Toyota_suv ", drop = FALSE]' Und dann die Alles-Null-Bedingung für dieses Objekt ausführen . Aber ich vermisste diese Teilmenge mit der ersten Bedingung 'toyota_suv! = 0' zu integrieren. Ich gehe davon aus, dass es keine Möglichkeit gibt, einen Zwischenschritt zu vermeiden. Auch zu viele negative Kommentare bei der Verwendung einer Teilmengenfunktion oder beim Ausführen mit 'which' oder' with'. also war ich mir nicht sicher. – Pradeep