Ich bin ganz neu in R und verwendet eine Menge von Stackoverflow viele Probleme in der Vergangenheit zu lösen suchen, konnte aber keine Lösung für ein aktuelles Problem finden:R - Ersetzen Spalten Datenrahmen basierend auf Spaltennamen
Ich möchte die Spalten eines leeren Datenrahmens durch Spalten eines anderen Datenrahmens ersetzen, der Messdaten basierend auf übereinstimmenden Spaltennamen enthält. Um das Problem zu veranschaulichen, hier einige Beispieldaten:
#sample data
set.seed (543)
input <- data.frame(replicate(6,sample(0:100,20,rep=TRUE)))
colnames(input) <- c("Time", "C2", "B1", "A1","A2", "A3") #no specific order predictable here
#create empty data frame
test <- data.frame(matrix(0, ncol = 10, nrow = nrow(input)))
colnames(test) <- c("Time", "A1", "B1", "C1","A2", "B2", "C2","A3", "B3", "C3")
I angewandt, um die match
Funktion des Spaltenname-Lookup
#match column names and generate index vector
matching <- match(colnames(test),colnames(input))
#remove NA from vector
matching <- matching[!is.na(matching)]
zu tun, aber wenn ich einfach die Messungen Datenrahmen in die leeren kopieren Sie mit der Indexvektor
test[,matching] <- input[,1:ncol(input)]
R immer den leeren ‚Test‘ Datenrahmen von ‚links nach rechts‘, unabhängig von der Reihenfolge, in dem ‚passenden‘ Vektor spezifizierte füllt. Ich möchte einen 'Test'-Datenrahmen erhalten, in dem Spalten, die nicht im' Eingabe'-Datenrahmen vorhanden sind, immer noch mit Nullen gefüllt sind. Irgendwelche Ideen? Danke im Voraus!