Ich habe einen Datensatz wie folgt aus:subtrahieren Reihen von Zeit und ID
set.seed(10)
df <- data.frame(
Year = rep(2000, times=16),
Month = rep(1:2, each=8),
group = rep(c("ABC","ABc","Abc","AbC","aBC","aBc","abc", "abC"),times=2),
A_gr = rep(c("A","A","A","A","a","a","a","a"), times=2),
V = rnorm(16)
)
Wo A, B und C kann entweder in Form eines Kapitals oder einen kleinen Buchstaben haben. Für jeden Zeitpunkt (Monat + Jahr) und Gruppenkombination möchte ich nun den V-Wert der Großbuchstabenversion von der Kleinbuchstabenversion subtrahieren. Also aBC-ABC, aBc-ABc usw.
Mit nur 2 Gruppenbriefen habe ich das mit der Reihenfolge, Liste und nach getan, aber ich kann das hier nicht machen. Ich habe auch mit Plyr experimentiert, bin aber auch nicht erfolgreich gewesen. Irgendwelche Ideen?
Weiter frage ich mich, ob es möglich ist, die Summe aller vier Großbuchstaben von der Summe der Kleinbuchstaben in einem Schritt zu subtrahieren, also (ABC + ABC + ABC + ABC) - (ABC + ABc + ABC) + AbC)
Danke für diese Lösung! Nur um mehr über die Dynamik des Codes zu verstehen: Wofür stehen die "\\ U \\ 1" - und Perl-Argumente in Lösung 1 und wofür steht die 2 im Teilstring-Befehl in Lösung 2? – faremi
@faremi Das '\\ U \\ 1' steht für die Umwandlung der erfassten Gruppe in Großbuchstaben. '\\ 1' ist die Rückreferenz für die erfasste Gruppe (' (.) '), Es passt zum ersten Zeichen und wird in Großbuchstaben umgewandelt. In der 'Teilzeichenfolge 'verwenden wir die' Start'-Position als 2. So werden alle Zeichen von 2 bis Ende der Zeichenkette extrahiert. – akrun
Das macht Sinn! Etwas Neues gelernt. :) Gibt es eine intelligentere Lösung, um das zu tun, was ich in meiner Follow-up-Frage beschrieben habe, als deinen Algorithmus viermal anzuwenden? – faremi