데이터 분석/R 데이터 처리 & 분석

[R] 작업 디렉토리에서 파일 찾기 및 변수 할당하기

love R 2021. 11. 4. 00:04
반응형

작업 디렉토리에서 특정 문자열을 포함한 파일을 찾고 싶을 때가 있는데요.

이 때는 작업디렉토리에서 파일 이름을 먼저 불러와야 합니다.

아래 단계를 통해 간단하게 알 수 있는 방법이 있습니다.

 

1. getwd()로 작업 디렉토리 확인하기

작업 디렉토리는 사용자마다 다를 수 있습니다.

getwd() 는 현재 작업 디렉토리로 지정된 주소를 확인합니다.

저는 "C:/love_R" 이라는 곳에 지정되어 있습니다.

 

 

2. dir()로 작업 디렉토리 파일 확인하기

 

dir() 함수는 작업 디렉토리 안에 있는 파일들을 확인할 수 있습니다.

이 때 "covid" 문자를 포함한 파일들만 보고 싶다면 어떻게 할까요?

 

3. grep 함수로 문자 찾기

dir() 로 화면에 보여지는 파일들은 문자형 벡터로 주어집니다. 

test_dir 변수에 할당하고 class 함수를 이용해 타입을 확인해보면 문자열 벡터임을 확인할 수 있습니다.

 

 

이때 grep 함수를 이용해서 문자를 찾습니다. 

위 파일명에서 "covid" 문자만 포함하는 파일들을 찾습니다.

grep 함수는 문자형벡터에서 문자를 검색할 수 있고 그 결과값은 인덱스로 반환(중요)됩니다.

grep(찾을 문자, 문자형벡터)

 

 

# grep 함수에서 찾을 문자는 "covid" 이며 문자형 벡터는 test_dir 입니다.
# 결과값이 test_dir(문자형벡터)에서 "covid"를 포함한 파일명의 인덱스를 반환합니다.

grep(
"covid", test_dir)
[1]  3  4  5  6  7  8  9 10 15

# 문자형벡터에서 위치만 알려주니까 어떤 파일명이 있는지 모릅니다.
# 이제 인덱스를 파일명으로 불러옵니다. 인자에 value=TRUE를 넣어줍니다.
grep('covid', test_dir, value=TRUE) 
[1] "covid_t.csv"      "covid100.csv"     "covid19.csv"     
[4] "covid19_1.csv"    "covid19_15.csv"   "covid19_2.csv"   
[7] "covid19_3.csv"    "covid19_4.csv"    "test_covid19.csv"

 

 

 

위처럼 value=TRUE 인자를 넣어 특정 문자가 어떤 것인지 바로 반환할 수 있습니다

 

다른 방법으로는 R의 인덱스 추출 기능을 이용하여 반환할 수 있습니다.

grep("covid", test_dir)
[1]  3  4  5  6  7  8  9 10 15


# [ ] 이용
test_dir[grep("covid", test_dir)]
[1] "covid_t.csv"      "covid100.csv"     "covid19.csv"     
[4] "covid19_1.csv"    "covid19_15.csv"   "covid19_2.csv"   
[7] "covid19_3.csv"    "covid19_4.csv"    "test_covid19.csv"

 

 

4. assign 함수로 변수 할당하기

# 반복문(for 문)을 이용해서 각 파일을 저장
# length(covid_file)는 covid_file 변수의 벡터 길이 반환함

# for 반복문과 assign함수를 이용해서 a1, a2, a3, ..., a9까지 각 파일을 저장

covid_file <- test_dir[
grep(
"covid", test_dir)]
for
( i in 1:length(covid_file)){ 
assign(paste0("a",i), read.csv(paste0("C:/love_R/", covid_file[i]))) 
}


# Environment 창에서 a1~a9 까지 차례로 변수에 부여된 것을 알 수 있습니다.



반응형