프로그래밍 문법 104

폴더내의 하위 파일 모두 불러오기 및 접근

하위파일 모두 불러오기 import os import pandas as pd folder="name_of_folder" #디렉토리 내에 폴더 subdir_names=os.listdir(folder) #subdir_names에 폴더내의 모든 파일이름이 들어간다 for file_name in subdir_names: csv=pd.read_csv(folder+"\\"+file_name) #하위 디렉토리 접근시 역슬러시(원화표시) 하위 파일(or 폴더)에 접근하기 # 폴더 data_path = '/gdrive/My Drive/folder' # 파일 file=os.path.join(data_path,"file") print(file) /gdrive/My Drive/folder/file

파일 불러오기 , 쓰기

1. 파일 읽어오기 (1) 내장 모듈 fileMatrix = [] with open("21.csv",'r') as file: for lineContent in file: fileMatrix.append(lineContent.strip('\n').split(",")) for lineContent in file: - file에 있는 한줄씩 lineContent에 저장 (문자열형식) ​ lineContent.strip('\n').split(",") - lineContent에 \n은 없앰 - split(",") : 리스트를 만들어서 ","를 기준으로 나누어서 한 index씩 넣음 fileMatrix = [] with open('data.csv','r',encoding='utf-8') as fileOpen: li..

데이터프레임 관련

1. 각각의 벡터를 만들고 합치는 방법 english > class class [1] 1 1 2 2 2. 바로 만드는 방법 df2_midterm df2_midterm df2_midterm english2 math2 class2 1 90 50 1 2 80 60 1 3 60 100 2 4 70 20 2 3. 데이터프레임의 속성 읽기 dataframe$col df=data.frame(var1=c(5,3,4), var2=c(2,6,1)) df$var1 > df=data.frame(var1=c(5,3,4), + var2=c(2,6,1)) > df$var1 [1] 5 3 4 4. 파생속성 만들기(속성추가하기) df=data.frame(var1=c(5,3,4), var2=c(2,6,1)) df$var_sum=df$v..

함수

1. 문자열 (1) pasted() 벡터형식 문자열 합치기 (파이썬의 "".join(list)와 비슷) str6 str6_pated str6_pated [1] "hello my world hi" ​ 2. 데이터 (1) head(), tail() 데이터에서 첫 6개, 마지막 6개 데이터 출력 # 앞부분을 출력, 6이 default, 10을 주면 상위 10개출력 head(exam,10) # 뒷부분을 출력, 6이 default tail(exam) > # 앞부분을 출력, 6이 default > head(exam,10) id class math english science 1 1 1 50 98 50 2 2 1 60 97 60 3 3 1 45 86 78 4 4 1 30 98 58 5 5 2 25 80 65 6 6 ..

패키지 사용방법

1. 패키지설치 : 하나의 프로젝트당 최초 한번만 설치하면 됨. (파이썬의 pip패키지설치와 비슷하다) ​ ​ (1) 코드를 통해 설치 install.package("패키지이름") (2) gui를 이용한 설치 (권장) 우측아래 package->install->packages칸에 원하는 패키지명 입력후 설치 ​ ​ 2. 패키지 불러오기 : R을 새로 실행할 때 마다 최초 한번 실시 (파이썬의 import와 비슷) library(패키지이름) library(dplyr) library(ggplot2) 3. 필요한 함수 사용 #library(dplyr) df_new

벡터 자료구조

1. C(a:b) (컴바인) # 1부터 5까지 저장 var=c(1:5) print(var) # index도 1부터 5까지 부여 var[0] # 값추가하기 var[6]=100 var #문자를 추가하면 전체 변수가 문자로 변함 var[7]="saeg" var[8]=TRUE var # 논리값(TRUE)를 넣으면 숫자 1로 들어감 var2=c(1:10) var2 var2[11]=TRUE var2 2. seq(a,b) (시퀀스) :파이썬의 range()와 똑같다. (단 seq는 마지막값을 포함함, ex) seq(1,3)=[1,2,3]) #-----------seq(a,b)-------------- var3=seq(1,10) var3 var4=seq(2,10,2) var4 #각각의 요소에 2를 넣음 var5=var..

csv,xlsx파일 읽고 쓰기

1. CSV * 용량이 작고, xlsx파일과 달리 MS가 깔려있지 않은 (macOS,linux)환경에서도 작동가능한 파일형식. # 별도의 패키지없이 R내장함수 사용 df_csv_exam df_csv_exam_novar df_csv_exam_novar V1 V2 V3 V4 V5 1 1 1 50 98 50 2 2 1 60 97 60 3 3 1 45 86 78 4 4 1 30 98 58 5 5 2 25 80 65 6 6 2 50 89 98 7 7 2 80 90 45 8 8 2 90 78 25 9 9 3 20 98 15 10 10 3 50 98 45 11 11 3 65 65 65 12 12 3 45 85 32 13 13 4 46 98 65 14 14 4 48 87 12 15 15 4 75 56 78 16 16 ..

함수에서 배열호출시 메모리참조, 벡터호출시 값참조

c++에선 함수에서 호출시 1. 배열은 메모리참조 2. 벡터는 값참조를 한다 ​ 1. 소스코드 #include #include #include #include #include #define max pow(2,31)-1 using namespace std; void vectorFuc(vector v) { for (int i = 0; i < 10; i++) { v[i] = i; } return; } void arrFuc(int *a) { for (int i = 0; i < 10; i++) { a[i] = i; } return; } int main() { vector v(10); int arr[10] = { 0, }; vectorFuc(v); //call by value arrFuc(arr); //call b..

문자열형 숫자를 숫자형으로 표현

char형으로 된 숫자를 숫자형으로 바꾸고 싶을때는 다음과 같이 쓸 수 있다. string N; int temp = (N[i] - '0'); 예시문제) [boj]10610_30 #include #include #include using namespace std; int main() { string N; cin >> N; bool isInZero=false; int sum=0; //3의 배수 and 10의배수 ? for (int i = 0; i 숫자 sum += temp; if (!temp) { isInZero = true; } } if (sum % 3 != 0 or not isInZero) { cout

벡터에서 값으로 index찾기

방법 1. 찾고자 하는 값의 위치에 반복자를 만들어준다. 2. 백터의 첫번째 위치의 반복자( vec.begin() )와 위에서 만든 반복자 사이의 거리( distance() )를 이용하여 index를 구한다 예시 코드 - 4의 index를 찾고싶을때 #include #include #include using namespace std; int main() { vector vec = { 1,2,3,4,5,6,7 }; //찾고자하는 값의 반복자를 정의한다 vector::iterator iter = find(vec.begin(), vec.end(), 4); //첫인덱스부터 위에서 찾은반복자 사이의거리를 이용하여 index를 찾는다 int index = distance(vec.begin(), iter); cout