0
Ich habe eine Datentabelle, die ich Zeilen basierend auf einer variablen Zeichenfolge filtern möchten. Zum Beispiel:Wählen Sie Zeilen in Datentabelle mit einer Variablen
mtcars=as.data.table(mtcars)
mtcars[cyl>=4]
Die oben genannten Arbeiten, aber dies nicht:
str='cyl>=4'
mtcars[str]
ich versucht habe, [[str]], aber das funktioniert auch nicht.
Danke für Ihre Hilfe
Verwenden Sie 'str = Zitat (cyl> = 4); mtcars [eval (str)] '. Die FAQ wird als Teil der Dokumentation betrachtet und sollte wahrscheinlich vollständig gelesen werden, bevor nach grundlegenden Funktionen gefragt wird. Das ist Frage 1.16: https://rawgit.com/wiki/Rdatatable/data.table/vignettes/datatable-faq.html#ok-but-i-dont-know-the-expressions-in-advance-how-how- do-i-programmatically-pass-the-in Die anderen auf der Support-Seite genannten Ressourcen sind wahrscheinlich auch einen Blick wert: https://github.com/Rdatatable/data.table/wiki/Support – Frank
Ich glaube das nicht ist eine doppelte Frage. Die einzigen Fragen, die ich finden konnte, waren mit j bezüglich der Spalten. In den genannten FAQ ist nicht klar, wie dies für i zu tun ist. Ihre Antwort in dem Kommentar funktioniert nicht für mich, weil es erfordert, dass "cyl> = 4" anstelle einer Variablen fest codiert wird. Die Antwort von Dean funktioniert. –
Sicher. Willst du das hier? http://stackoverflow.com/questions/1743698/evaluate-expression-given-as-a-string Der eval-parse-text-Pfad ist nicht eindeutig für data.table und wird generell nicht empfohlen, fyi: http: // stackoverflow. com/q/13649979/In Bezug auf die FAQ, die nicht "i" abdecken, könntest du das als Feedback/eine Feature-Anfrage über den obigen Support-Link aufrufen. Ich bin sicher, dass die Paketautoren an Lücken interessiert sind, die neue Nutzer in den Vignetten finden. – Frank