2017-11-13 9 views
0

나는 월 및 연도 (40 년 가치)로 구분 된 데이터 목록을 만들려고합니다. 현재 데이터의 이름 구조는 (Year) - (Numeric Month) - (Var) .nc입니다. 아래에 작성된 해당 목록에 모든 데이터를 가져오고 싶습니다. 여기에서 진행하는 방법을 정확히 알지 못합니다. 모든 지침을 부탁드립니다.파일 이름별로 목록 구성 R

files_nc <- list.files(pattern = ".nc") 

year <- vector("list", length = 40) 
month <- vector("list", length = 12) 

names(year) <- c(1978:2017) 
names(month) <- c("Jan","Feb","Mar","Apr","May","Jun","Jul", 
    "Aug","Sep","Oct","Nov","Dec") 

for (i in 1:40) { 
    year[[i]] <- month 
} 
+0

원하는 결과물을 보여 주시겠습니까? 그것은 명확하지 않다 –

+0

나는 파일을 통해 반복하고 각각 올바른 목록에 배치하고 싶습니다. 그래서 이드는 1987 년 3 월 $ 1987-03-T2.nc와 같은 것을 좋아한다. – bwc

답변

0

당신이 묻는 것을 완전히 명확하게 밝히지는 못했지만 이것이 효과가 있다고 생각합니다. 나는 당신이 파일리스트에로드하고 있고, 각 파일이 1 년과 1 개월과 연관되어 있다고 가정하고있다.

file_names <- list(names(files_nc)) 

file_names_split <- lapply(file_names,function(x)strsplit(x,"-")) 

for(i in 1:length(file_names_split)) { 

    y <- which(names(year) == file_names_split[[i]][[1]][1]) 
    m <- as.numeric(file_names_split[[i]][[1]][2]) 

    year[[y]][m] <- files_nc[[i]] 

} 

일반적으로이 방법이 효과적입니다. 작동하는 경우 for 루프를 적용 문으로 다시 작성하는 시간이 필요합니다.

+0

그래, 질문이 애매했지만 너는 그것을 얻었다. strsplit 기능은 내가 누락 된 부분이었습니다. 고맙습니다! 대부분의 루프를 수행하는 방법을 들었을 때 루프를 변형하여 적용 문으로 변환하는 방법을 살펴볼 것입니다. – bwc