我收到 3 个数据帧(训练、验证和测试),其中包含具有相同变量的数据。我不希望它们包含在列表中,以便我可以将它们整齐地称为, trn
,vld
和等。tst
list[[1]]
我需要从所有数据集中删除变量。有没有一种方法可以在不首先创建列表、迭代然后从列表中重新创建数据帧的情况下进行迭代处理?即我目前正在做类似的事情:
trn <- read.csv("training_split_60pct.csv")
vld <- read.csv("validation_split_20pct.csv")
tst <- read.csv("test_split_20pct.csv")
# a list of variables to drop
drops <- c("ONE", "TWO", "THREE", "FOUR")
dfRawList <- list(trn, vld, tst)
dfList <- lapply(dfRawList, function(df) df[,!(names(df) %in% drops)])
names(dfList) <- c("trn", "vld", "tst")
trn <- dfList[["trn"]]
vld <- dfList[["vld"]]
tst <- dfList[["tst"]]
但我希望能够做到:
trn <- read.csv("training_split_60pct.csv")
vld <- read.csv("validation_split_20pct.csv")
tst <- read.csv("test_split_20pct.csv")
# a list of variables to drop
drops <- c("ONE", "TWO", "THREE", "FOUR")
for (df in c('trn', 'vld', 'tst')){
df <- lapply(df, function(df) df[,!(names(df) %in% drops)])
}
当然,这只是用tst
数据创建一个数据框。