2013-11-14 3 views
0

동일한 변수를 가진 데이터를 포함하는 3 데이터 프레임 (교육, 유효성 검사 및 테스트)을 수신했습니다. 등 list[[1]] 나는 모든 데이터 세트에서 변수를 삭제할 필요가반복적으로 데이터 프레임을 변경 R

반대로 내가 trn, vldtst으로 깔끔하게들을 참조 할 수 있도록 내가 목록에 포함 할을하지 않으려는 것입니다. 처음에는 목록을 작성하지 않고 반복적으로 처리하고 목록에서 데이터 프레임을 반복하여 반복하는 방법이 있습니까? 즉, 나는 현재 같은 것을 할 좋아하고 있어요 :

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 데이터를 하나 개의 데이터 프레임을 생성한다 .

+0

R에서 권장되는 방법을 알고있는 것 같습니다. 사용하는 것이 좋습니다. – Roland

+0

@shadow : 답변 해 주셔서 감사합니다. 나는 R에게 아주 새삼 사과한다. 왜 이것이 권장되는지에 대한 몇 가지 예가 있습니까? – kungfujam

답변

2

assignget을 사용하여이 작업을 수행 할 수 있습니다. 하지만 현재 목록을 사용하고 lapply을 사용하는 것이 좋습니다.

for (df in c("trn", "vld", "tst")){ 
    assign(df, get(df)[, !names(get(df)) %in% drops]) 
} 
관련 문제