Есть ли простой способ упростить этот код, используя al oop? - PullRequest
0 голосов
/ 28 мая 2020

Есть ли способ упростить этот код, используя al oop?

set.seed(100) 

AL_INDEX <- sample(1:nrow(AL_DF), 0.7*nrow(AL_DF))
AL_TRAIN <- AL_DF[AL_INDEX,]
AL_TEST <- AL_DF[-AL_INDEX,]  

AR_INDEX <- sample(1:nrow(AR_DF), 0.7*nrow(AR_DF))
AR_TRAIN <- AR_DF[AR_INDEX,]
AR_TEST <- AR_DF[-AR_INDEX,]  

AZ_INDEX <- sample(1:nrow(AZ_DF), 0.7*nrow(AZ_DF))
AZ_TRAIN <- AZ_DF[AZ_INDEX,]
AZ_TEST <- AZ_DF[-AZ_INDEX,]  

AL_DF, AR_DF и AZ_DF - это фреймы данных, которые имеют одинаковую структуру полей, но разное количество записей.

1 Ответ

2 голосов
/ 28 мая 2020

Найдите шаблон для захвата всех имен фреймов данных. В общем примере все они заканчиваются на "_DF", используйте mget, чтобы добавить их в список. Разделите данные в тесте и обучите и unlist их на одном уровне.

data <- unlist(lapply(mget(ls(pattern = '_DF$')), function(df) {
            index <- sample(1:nrow(df), 0.7*nrow(df))
            list(train = df[index,], test = df[-index,])  
         }), recursive = FALSE)

Теперь поместите их в отдельные фреймы данных, используя list2env.

list2env(data, .GlobalEnv)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...