То, как вы сейчас настроили свой цикл, сохраняет только последнюю итерацию цикла, потому что tst
не настроен на сохранение более одного значения и перезаписывается с каждым шагом цикла.
Сначала вы можете создать tst
в виде списка:
tst <- list()
Тогда в вашем коде укажите, что каждый шаг сохраняется как отдельный элемент в списке путем добавления скобок и индекса к tst. Вот полный пример того, как вы это делали.
#Example data.frame that could be in datas
df_1 <- data.frame("not_selected" = rep(0, 5),
"phone_number" = rep("1-800", 5),
"Subregion" = rep("earth", 5),
"PhoneType" = rep("flip", 5))
# Another bare data.frame that could be in datas
df_2 <- data.frame("also_not_selected" = rep(0, 5),
"phone_number" = rep("8675309", 5),
"Subregion" = rep("mars", 5),
"PhoneType" = rep("razr", 5))
# Datas is a list of data.frames, we want to pull only specific columns from all of them
datas <- list(df_1, df_2)
#create list to store new data.frames in once columns are selected
tst <- list()
#Function for looping through 'a' elements
new.function <- function(a) {
for(i in 1:a) {
tst[[i]] <- datas[[i]] %>% select("phone_number","Subregion", "PhoneType")
}
print(tst)
}
#Proof of concept for 2 elements
new.function(2)