Ich habe einen unordentlichen gregexpr Anruf, der wie unten schaut (sie paßt auf jedem einzelnen oder Mutiple Zahlen, die vor einem der folgenden Einheiten sind in dem Einheitsvektor unten aufgeführt):Funktion/Schleife innerhalb gregexpr R
sub_matches <- as.character(regmatches(tolower(data$Dose.taken),
gregexpr("[0-9]+[0-9]g|+[0-9]g|[0-9]+[0-9]mg|+[0-9]mg|+[0-9]gm
|[0-9]+[0-9]gm |[0-9]+[0-9]grm|+[0-9]grm
|[0-9]+[0-9]ml|+[0-9]ml|[0-9]+[0-9]iu|+[0-9]iu
|[0-9]+[0-9]mls|+[0-9]mls|[0-9]+[0-9]gl|+[0-9]gl
|[0-9]+[0-9]l|+[0-9]l|[0-9]+[0-9]sheet|+[0-9]sheet
|[0-9]+[0-9]mcg|+[0-9]mcg",
tolower(data$Dose.taken))))
Ich möchte dies in einer Funktion oder Schleife so wickeln, dass es durch den folgenden Einheitsvektor durchläuft. Das Folgende funktioniert jedoch nicht in seiner derzeitigen Form. Wie kann ich das aufräumen?
unit <- c("g","mg","gm","grm","ml","mls","l","mcg","iu","sheet")
i<-1
for(i in 1:length(unit)){
sub_matches <- as.character(regmatches(tolower(data$Dose.taken),
gregexpr("[0-9]+[0-9]paste(unit[i])|+[0-9]paste(unit[i])",tolower(data$Dose.taken))))
}
Können Sie einige Beispieldaten für Ihre 'Dose.taken' Spalte angeben? Ich vermute, du könntest die gleichen Matches mit einem viel kleineren Regex durchführen. – Marius