Хитрость заключается в том, чтобы использовать mget
, чтобы получить все входные кадры данных за пределами цикла for
. Затем в цикле извлекаем интересующие столбцы и assign
новые наборы данных.
dts <- c("r1", "r2", "r3")
r_RAW_list <- mget(paste0(dts, "_RAW"))
for(d in dts){
i <- grep(d, names(r_RAW_list))
temp_rRAW <- r_RAW_list[[i]]
temp <- data.frame(S = temp_rRAW[["Zeit"]], A = temp_rRAW[["Wert"]])
assign(d, temp)
}
rm(r_RAW_list, temp_rRAW, temp)
ls(pattern = "^r[[:digit:]]$")
#[1] "r1" "r2" "r3"
r1
# S A
#1 -1.2070657 -0.47719270
#2 0.2774292 -0.99838644
#3 1.0844412 -0.77625389
#4 -2.3456977 0.06445882
#5 0.4291247 0.95949406
#6 0.5060559 -0.11028549
#7 -0.5747400 -0.51100951
#8 -0.5466319 -0.91119542
#9 -0.5644520 -0.83717168
#10 -0.8900378 2.41583518
Проверка кода создания данных.
set.seed(1234)
n <- 10
r1_RAW <- data.frame(Zeit = rnorm(n), Wert = rnorm(n), Other = rnorm(n))
r2_RAW <- data.frame(Zeit = rnorm(n), Wert = rnorm(n), Other = rnorm(n))
r3_RAW <- data.frame(Zeit = rnorm(n), Wert = rnorm(n), Other = rnorm(n))