本文介绍了有没有一种简单的方法可以使用循环简化此代码?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
有没有一种使用循环来简化此代码的方法?
Is there a way to simplify this code using a loop?
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是具有相同字段结构但记录数量不同的数据帧.
AL_DF, AR_DF & AZ_DF are data frames that have the same field structure, but different number of records.
推荐答案
查找模式以捕获所有数据框名称.在示例共享的所有文件中,所有文件均以"_ DF"
结尾,使用 mget
将其放入列表.将测试中的数据划分并训练,然后将它们 unlist
一级.
Find a pattern to capture all the dataframe names. In the example shared all of them end with "_DF"
, use mget
to get them in list. Divide the data in test and train and unlist
them one level.
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
将它们分成单独的数据框.
Now get them into individual dataframes using list2env
.
list2env(data, .GlobalEnv)
这篇关于有没有一种简单的方法可以使用循环简化此代码?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!