Ich habe ziemlich viel gesucht und keine Frage gefunden, die dieses Problem angeht - aber wenn das beantwortet wurde, verzeih mir, ich bin immer noch ziemlich grün, wenn es um das Codieren im Allgemeinen geht . Ich habe einen Datenrahmen mit einer großen Anzahl von Variablen, die ich gerne kombinieren würde & neue Variablen basierend auf Namen erstellen, die ich in einem 2. Datenrahmen in einer Schleife gesetzt habe. Der Datenrahmen formulas
sollte & Aufruf Spalten von der Hauptdatenrahmen erstellen data
Aufruf und Erstellen neuer Spalten basierend auf String
USDb = c(1,2,3)
USDc = c(4,5,6)
EURb = c(7,8,9)
EURc = c(10,11,12)
data = data.frame(USDb, USDc, EURb, EURc)
Jetzt würde ich data$USDa
eine neue Spalte erstellen möchten, wie durch
data$USDa = data$USDb - data$USDc
definiert und so weiter für EUR und andere Variablen. Dies ist leicht genug, um manuell zu tun, aber ich möchte eine Schleife erstellen, die die Namen von formulas
, so etwas wie dies zieht:
a = c("USDa", "EURa")
b = c("USDb", "EURb")
c = c("USDc", "EURc")
formulas = data.frame(a,b,c)
for (i in 1:length(formulas[,a])){
data$formulas[i,a] = data$formulas[i,b] - data$formulas[i,c]
}
Offensichtlich data$formulas[i,a]
diese NULL
zurückkehrt, also habe ich versucht data$paste0(formulas[i,a])
und kehrt Error: attempt to apply non-function
Wie kann ich diese Zeichenfolgen als Variablen auf diese Weise erkannt bekommen? Vielen Dank.
ja, diese Lösung gearbeitet die tatsächlichen Daten, die ich habe und für mich scheint eleganter als Looping. Danke für die Anleitung. – chrstnsn