Wählen Sie Variablen basierend auf Namen (einfacher regulärer Ausdruck)
Frage
Ich möchte Variablennamen integrieren, was implizieren ich mit ihnen tun sollte. Ich stelle mir einen Datenrahmen „Umfrage“.
library(Rlab) # Needed for rbern() function.
survey <- data.frame(cbind(
id = seq(1:10),
likert_this = sample(seq(1:7),10, replace=T),
likert_that = sample(seq(1:7), 10, replace=T),
dim_bern_varx = rbern(10, 0.6),
disc_1 = sample(letters[1:5],10,replace=T)))
Nun würde Ich mag mit allen Variablen, bestimmte Dinge zu tun, die enthalten likert , andere Dinge mit Variablen, die enthalten bern usw.
Wie kann dies in R getan werden?
Lösung
Sie können grep()
mit colnames()
verwenden:
survey[,grep("bern", colnames(survey))]
Andere Tipps
Wenn Sie eine Reihe von Namen haben Sie, wie Sie auch Spiel verwenden, um greifen. vielleicht müssen Sie oft Variablen „Puls“, „Bewegung“, „Höhe“, „Gewicht“ und „Alter“, aber sie manchmal an verschiedenen Orten oder mit anderen zugegebenen Variablen angezeigt. Sie können den Vektor des gemeinsamen Namen speichern, um sie dann gegen den Datenrahmen entsprechen und haben eine neue df von nur Ihre Standard-Spalten in der gewünschten Reihenfolge.
basenames <- c("pulse", "exercise", "height", "weight", "age")
get.columns <- match(basenames, names(dataframe))
new.df <- dataframe[,get.columns]
Die "Operatoren" Paket ermöglicht es einige Perl-ähnliche Syntax:
library(operators)
survey[, colnames(survey) %~% "bern"]
oder
subset(survey, select = colnames(survey) %~% "bern")