Ich versuche Spalten in einem Datenrahmen in R basierend auf dem Spaltennamen auszuwählen. Ich möchte Spalten, in denen der Spaltenname entweder "activity", "subject" oder "originaldataset" enthält oder mit "mean()" oder "std()" endet. Als ichR Regex Escape funktioniert nicht mit Variablennamen
colselection <- grep('mean\\(\\)$|std\\(\\)$|subject|activity|originaldataset',
colnames(completedf))
selectdf <- completedf[,colselection]
bekomme ich nur Spalten mit "Aktivität", "Thema" oder "originaldataset", keine mit der Endung "mean()" oder "std()". Hinweis: "completedf" ist der ursprüngliche vollständige Datenrahmen.
Beispiele für Spaltennamen: tBodyAccMag-Mittelwert(), tBodyAccMag-STD(), tBodyAccJerkMag-Mittelwert(), tBodyAccJerkMag-STD(). Die Namen werden aus einer Textdatei mit gelesen und die Spalte mit den Namen wird in einen Zeichenvektor eingefügt, der später für die Spaltennamen im Datenrahmen "completedf" verwendet wird.
Ich benutze R Studio Version 0.99.902 mit R-Version 3.2.3 (2015-12-10) auf Ubuntu 16.10.
Sie entkommen die '$', die nicht benötigt wird, dh 'grep ('bedeuten \\ (\\) $ | std \\ (\\) $ | Betreff | Aktivität | Originaldataset', Spaltennamen (completedf)) ' – akrun
In' R' brauchen wir \\ und nicht single \. – akrun
Wenn ich 'code'grep ('mean \\ (\\) $', Spaltennamen (completedf), Wert = TRUE)', bekomme ich einen leeren Zeichenvektor. Ich bekomme auch einen leeren Zeichenvektor ohne $. Seltsam. – ElToro1966