Я получаю 3 кадра данных (обучение, проверка и тестирование), содержащие данные с теми же переменными. Я предпочел бы, чтобы они не должны содержаться в списке, так что я могу обратиться к ним аккуратно, как trn
, vld
и tst
в отличие от list[[1]]
и т.д.Итеративное изменение кадров данных в R
мне нужно сбросить переменные из всех наборов данных. Есть ли способ итеративного процесса без предварительного создания списка, итерации, а затем повторного создания фреймов данных из списка? т.е. я сейчас делаю хотел сделать что-то вроде:
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
,
Вы, кажется, знаете рекомендуемый способ в R. Я предлагаю использовать его. – Roland
@ тени: спасибо за ответы. Я новичок в R, так что извиняюсь. Есть ли примеры того, почему это рекомендуется? – kungfujam