有没有一种方法可以使用循环简化此代码?

时间:2020-05-28 03:04:15

标签: r loops dataframe for-loop

有没有一种使用循环来简化此代码的方法?

VariableList <- c(v0,v1,v2, ... etc)

National_DF <- df[,VariableList]
AL_DF <- AL[,VariableList]
AR_DF <- AR[,VariableList]
AZ_DF <- AZ[,VariableList]
... etc

我希望最终结果具有每个作为数据帧,因为它将在模型的后面使用。每个状态(例如“ AL”,“ AR”,“ AZ”等)都是数据帧。 v {#}代表RAW数据帧中的不适当的变量。这是为了在不删除某些字段的情况下重组字段,以准备模型使用。

1 个答案:

答案 0 :(得分:2)

继续从您的previous question中获得答案,我们可以在创建数据框之前以相同的lapply调用方式安排数据。

VariableList <- c('v0','v1','v2')

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

然后在全局环境中获取数据:

list2env(data, .GlobalEnv)