Ich versuche, die dritte Spalte von mehreren Datenrahmen, die in einer verschachtelten for-Schleife aufgerufen und umbenannt werden, innerhalb des gleichen Schleife-Prozesses zu kombinieren.R: Wie kann ich bestimmte Spalten aller Datenrahmen einer verschachtelten Schleife innerhalb der Schleife binden?
# Sample Data
ecvec_msa6_1998=matrix(round(rnorm(200, 5,15)), ncol=4)
ecvec_msa6_1999=matrix(round(rnorm(200, 4,16)), ncol=4)
ecvec_msa6_2000=matrix(round(rnorm(200, 3,17)), ncol=4)
datasets=c("msa")
num_industrys=c(6)
years=c(1998, 1999, 2000)
alist=list()
for (d in 1:length(datasets)) {
dataset=datasets[d]
for (n in 1:length(num_industrys)){
num_industry=num_industrys[n]
for (y in 1:length(years)) {
year=years[y]
eval(parse(text=paste0("newly_added = ecvec_", dataset, num_industry, "_", year)))
# renaming the old data frames
alist = list(alist, newly_added) # combining them in a list
extracted_cols <- lapply(alist, function(x) x[3]) # selecting the third column
result <- do.call("cbind", extracted_cols) # trying to cbind the third colum
}
}
}
Kann jemand mir den richtigen Weg zeigen, dies zu tun?
Danke. Die erste Lösung ist genau das, was ich brauchte. Ihre zweite Lösung würde aber wahrscheinlich meinen Zielen nicht helfen, weil ich so flexibel wie möglich in der Anzahl der Datenrahmen (einzelne Spalten) sein möchte, die ich kombiniere – BeSeLuFri