[R좀 R려줘!] 하나의 엑셀(Excel)에 담긴 정보를 특정 기준으로 여러 엑셀 파일로 나누고 합치기!

👈 Click! 투표!

안녕하세요 :-)!!

오늘은 하나의 엑셀에 담긴 정보를 여러 엑셀 파일로 쪼개는 방법에 대해 알아보겠습니다!

사용할 예제 파일은 링크를 통해 확인해주세요. ㅎㅎ


elec = read.csv("elec_load.csv",
                stringsAsFactors = FALSE)
head(elec, 2)
# Q. 연월 정보가 담긴 변수 YYYYMM을 생성하시오.
#    2008-01 또는 2008-1
elec[, "YYYYMM"] = paste(elec$YEAR, elec$MONTH, sep = "-")
head(elec)

sprintf(fmt = "%02d", 1:20)
sprintf(fmt = "%04d", 1:20)

dir.create("elec_ym") #새로운 폴더 생성
write.csv(elec, "elec_ym/elec_test.csv") #csv 파일 생기는지 확인

paste0("abc/", "aaa", ".csv")
# Q. elec 객체를 YYYYMM 변수 기준으로 쪼개어
#    elec_ym 폴더에 각각의 파일로 저장하시오.
# (단, 파일명은 elec_load_2008-1.csv 양식으로 한다.)

for(ym in unique(elec$YYYYMM)){
    elec_sub = elec[elec$YYYYMM == ym, ]
    write.csv(elec_sub, paste0("elec_ym/elec_load_",
                               ym, ".csv"),
              row.names = FALSE)
}

하나의 엑셀(Excel or csv) 파일에 있는 값을 특정 기준으로 쪼개어 서로 다른 파일을 만들때는 위와 같은 로직을 이용해주시면 됩니다.

그럼 결과적으로~



위와 같이 생성되는 것을 확인할 수 있어요!

그렇다면 쪼개봤다면, 다시 합쳐도 봐야겠죠? ㅎㅎ


# Q. 반복문을 활용하여
#   elec_ym에 있는 파일 중,
#   elec_load_2008-01.csv와 같은 형식을 가진
#   파일을 순차적으로 불러와서 합쳐보시오
#   단, 저장되는 객체명은 elec_bind로 한다.
# list.files()
# rbind()

list_files = list.files("elec_ym/")
files_len = length(list_files)

tmp1 = NULL
elec_bind = NULL
a = NULL
b = NULL

tmp = read.csv("elec_ym/elec_load_2008-1.csv", stringsAsFactors = FALSE)
elec_bind = tmp

tmp1 = c(tmp1, colnames(tmp))
tmp1

for( i in (1: files_len)){
    a = read.csv(paste0('elec_ym/',list_files[i]), stringsAsFactors = FALSE)
    
    if(list_files[i] != "elec_load_2008-1.csv"){
        b = c(b, colnames(a))
        
        if(tmp1 == b){
            elec_bind = rbind(elec_bind, a)
        }
    }
    
    a = NULL
    b = NULL
}

head(elec_bind)

저는 하나의 특정 파일을 읽어들인 후 내부 로직을 먼저 입력을 해주었어요. (for문 위)

그리고 나서 for문에 각 ‘csv’파일 별로 도는데 먼저 사용한 csv파일을 제외하고,

전체 열(Column)명을 비교해서 합쳐주는 작업을 하였습니다!

그럼 결론적으로~!



최초의 데이터와 동일하다는 것을 확인할 수 있습니다. ㅎㅎ

궁금하신 점은 댓글로 남겨주세요~!

2020.02.27 – [개발] – [R좀 R려줘!] R 을 이용한 네이버 뉴스 크롤링 하기!

[R좀 R려줘!] R 을 이용한 네이버 뉴스 크롤링 하기!

R을 이용해 사용자 정의 함수 naver_news와 make_url 두개의 함수를 통해 네이버 뉴스를 크롤링 해보도록 하겠습니다! naver_news의 경우 크롤링 하는데 들어갈 목록을 정의한 함수입니다. 저의 경우 신

signedinfo.com

2020.02.27 – [개발] – [R좀 R려줘!] R gsub() 함수를 이용한 패턴 치환하기!

[R좀 R려줘!] R gsub() 함수를 이용한 패턴 치환하기!

R gsub() 함수를 이용하여 패턴 치환하는 방법에 대해 알아보겠습니다. 예제(text1)에 있는 값을 gsub()함수를 이용해 ‘@’로 치환하는 작업입니다. 참고) # 활용 함수 # ▶ gsub(): 패턴 치환 아래 내용을

signedinfo.com

2020.02.27 – [일상] – 멀티캠퍼스 R좀 R려줘! R 데이터 분석 with Cloud 후기!!

멀티캠퍼스 R좀 R려줘! R 데이터 분석 with Cloud 후기!!

안녕하세요 :-)! 오늘은 멀티캠퍼스에서 진행하는 R좀 R려줘! R 데이터 분석 with Cloud 강의 들은 후기에 대해 포스팅 해볼까 합니다! 그럼 시작해볼까요? ㅎㅎ 우선. 저는 사실 멀티캠퍼스를 잘 모

signedinfo.com

2020.02.28 – [개발] – [R좀 R려줘!] R rbind(), colnames()를 활용한 하나의 data.frame() 만들기!

[R좀 R려줘!] R rbind(), colnames()를 활용한 하나의 data.frame() 만들기!

안녕하세요 🙂 오늘은 R함수인 rbind(), colnames()를 활용하여 하나의 data frame을 만들어보려고 합니다! 실습 파일 다운로드 링크 문제는 아래와 같습니다.  Q. “2014_2017.xlsx” 에는 4개의 sheet가 있다…

signedinfo.com

2020.02.28 – [개발] – [R좀 R려줘!] R unique(), nrow()를 활용한 언론사 별 트렌드 파악하기!

[R좀 R려줘!] R unique(), nrow()를 활용한 언론사 별 트렌드 파악하기!

안녕하세요 🙂 오늘은 R함수인 unique(), nrow()를 활용하여 언론사 별 트렌드를 파악해보려고 합니다! 실습 파일 다운로드 링크 문제는 아래와 같습니다. # Q1. 몇 군데 언론사의 뉴스 기사가 수

signedinfo.com

2020.02.28 – [개발] – [R좀 R려줘!] aggregate(), ggplot() 함수를 이용한 언론사별 뉴스기사 그래프 그리기!

[R좀 R려줘!] aggregate(), ggplot() 함수를 이용한 언론사별 뉴스기사 그래프 그리기!

안녕하세요 🙂 오늘은 aggregate(), ggplot()함수를 이용하여 언론사별 뉴스기사 그래프를 그려보려고 합니다! 이전 글을 먼저 확인해주세요! 1) 2020/02/28 – [개발] – [R좀 R려줘!] R rbind(), colnames()를 활..

signedinfo.com

2020.02.28 – [개발] – [R좀 R려줘!] R에서 자연어(NLP)처리를 해보자!

[R좀 R려줘!] R에서 자연어(NLP)처리를 해보자!

안녕하세요 :-)! 오늘은 R에서 자연어(NLP) 처리를 어떻게 하는지 알아보려고 합니다! R 자연어 처리의 경우 SK텔레콤에 재직 중이신 Jeon Heewon님의 깃헙을 참고해보려고 해요! R에 자연어 처리 패키

signedinfo.com

2020.02.28 – [개발] – [R좀 R려줘!] wordcloud2 패키지를 이용해 최다빈도 단어 추출하기!

[R좀 R려줘!] wordcloud2 패키지를 이용해 최다빈도 단어 추출하기!

안녕하세요 🙂 오늘은 wordcloud2 패키지를 이용하여 최다빈도 단어를 추출해보도록 하겠습니다! 추출할 단어를 위해 하나의 csv 파일을 사용할 것이라 다음 링크에서 다운받아서 활용해주세요! df

signedinfo.com

2020.02.28 – [개발] – [R좀 R려줘!] 데이터 분석할때 반복문 진행 현황 확인하기!

[R좀 R려줘!] 데이터 분석할때 반복문 진행 현황 확인하기!

안녕하세요 🙂 데이터 분석할때 반복문을 심심치 않게 사용하는데요! 이때 분석량이 많을 경우 어디까지 진행 됐는지 궁금할때 있잖아요? for(n in 1:65){ cat(paste0(“r==== Progress: “, n, “/65 ====”)) #Sys..

signedinfo.com

2020.02.28 – [개발] – [R좀 R려줘!] R을 이용하여 네이버 실시간 검색어, 인스타그램 검색 결과 크롤링 하기!!

[R좀 R려줘!] R을 이용하여 네이버 실시간 검색어, 인스타그램 검색 결과 크롤링 하기!!

안녕하세요 🙂 오늘은 R을 이용하여 네이버 실시간 검색어, 인스타그램 검색 결과를 크롤링 해보도록 하겠습니다! #install.packages(“RSelenium”) library(“RSelenium”) library(“wdman”) #node.js나 javascript..

signedinfo.com