2015-01-15 1 views
1

lapply을 사용하여 10 개의 .csv 파일을 가져올 수있었습니다. 출력은 list이 10 data.frames입니다. 각 data.frame는 변수 yearvalue 포함lapply 또는 Map을 사용하여 데이터 프레임 목록에서 동일한 변수를 조작하십시오.

file_names <- dir("../XYZ", pattern = glob2rx("*.csv")) 
data_list <- lapply(filenames, read.table, header = TRUE) 
head(data_list[[1]]) 
    year  value 
1 200712 2320,00 
2 200712 120,00  
3 200712 188,00 
4 200712 1328,00  
5 200712 46,00  
6 200712 98,00 
head(data_list[[2]]) 
    year  value 
1 200812 320,00 
2 200812 1120,00  
3 200812 1288,00 
4 200812 1128,00  
5 200812 746,00  
6 200812 938,00 

불행하게도, 변수 yearyyyymm 포맷을,하지만 난 그게 yyyy되고 싶어요.

그러므로 lapply 또는 Map을 사용하여 모든 단일 data.frame에서 year의 형식을 변경하고 싶습니다.

data_list <- lapply(data_list[["year"]], FUN = substr(1,4), ...) 

나 : 뭐 그런

data_list <- Map(substr(1,4), data_list, "year") 

하지만 그건 작동하지 않습니다 ... 어떤 아이디어?

답변

1

당신은 완벽하게

data_list <- lapply(data_list, function(x) {x$year <- substr(x$year, 1,4) 
            x}) 
+0

일을 시도 할 수 있습니다. 고마워! –

관련 문제