4_Day.ipynb
0.01MB

 

제어문(if문)

  • 주의 사항
    들여쓰기를 잘 해야한다.
    파이썬은 들여쓰기로 구문을 구분한다.
In [2]:
a=3
if a>5:
    print("참")
else:
    print("거짓")
 
거짓
In [4]:
money=True
if money :
    print("택시를 타고 가라")
 
택시를 타고 가라
 

만약 영어(eng) 점수가 90점 이상이면 합격을 나타내고 아니면 불합격을 나타내시오

  • input으로 입력받는 값은 문자열이다.
In [7]:
eng = int(input("영어 점수 입력: "))
if eng>=90:
    print("합격")
else:
    print("불합격")
 
영어 점수 입력: 100
합격
 

영어 점수가 90점 이상이고 수학점수가 90점이상이면 합격이고 아니면 불합격이다.

In [8]:
eng = 80
math = 90
if eng >=90 and math >=90:
    print("합격")
else:
    print("불합격")
 
불합격

 

In [9]:
1 in [1,2,3]
Out[9]:
True
In [10]:
4 in [1,2,3]
Out[10]:
False
In [12]:
pocket=['paper','phone','coin']
if 'money' in pocket or 'card' in pocket:
    print("택시")
elif 'coin' in pocket:
    print("걸어서")
 
걸어서
 

Quiz

주민등록번호 13자리를 입력 받아 성별이 남자인지 여자인지 나타내시오.

In [34]:
citizen_num = input("주민번호를 입력하시오: (-제외)")
if citizen_num[6] =='1' or citizen_num[6]=='3':
    print("남자")
else: 
    print("여자")
 
주민번호를 입력하시오: (-제외)1231233123123
남자
In [23]:
i=0
while i<10:
    print(i,end=' ')
    i =i+1
 
0 1 2 3 4 5 6 7 8 9 
In [24]:
i=0
while i<10:
    print(i,end=' ')
    i =i+1
    if i ==7:
        break;
 
0 1 2 3 4 5 6 
 

continue는 되도록 사용하지 않는 것이 바람직하다

In [26]:
i=0
while i<10:
    i =i+1
    if i ==7:
        continue
    print(i,end=' ')
    
 
1 2 3 4 5 6 8 9 10 
In [28]:
a=0
while a<10:
    a=a+1
    if a%2 ==0 : continue
    print(a)
 
1
3
5
7
9
 

무한 반복시 Kernel -> interupt

In [29]:
while True:
    x=input()
    if(x == 'q'):
        break;
 
d\
e
q
 

Quiz

while문을 사용해 1부터 1000까지의 자연수 중 3의 배수의 합을 구해 보자

In [32]:
i, sum =1, 0

while i<=1000:
    if(i%3 == 0 or i==1):
        sum += i
    i +=1
print("sum: ", sum)
 
sum:  166834

5_day.ipynb
0.01MB

 

 

In [1]:
test=['one', 'two', 'three']

for i in test:
    print(i)
 
one
two
three
In [3]:
marks=[90, 25, 67, 45, 80]

for i in marks:
    if i >= 90 :
        print("합격")
    else:
        print("불합격")
 
합격
불합격
불합격
불합격
불합격
In [9]:
for i in range(1, 11, 3):
        print(i)
 
1
4
7
10
 

Quiz for문을 사용해 1부터 100까지의 숫자를 출력해 보자

In [26]:
for i in range(1,101):
    print('{}'.format(i), end=' ')
    if(i%10 == 0 ):
        print(' ')
    
 
1 2 3 4 5 6 7 8 9 10  
11 12 13 14 15 16 17 18 19 20  
21 22 23 24 25 26 27 28 29 30  
31 32 33 34 35 36 37 38 39 40  
41 42 43 44 45 46 47 48 49 50  
51 52 53 54 55 56 57 58 59 60  
61 62 63 64 65 66 67 68 69 70  
71 72 73 74 75 76 77 78 79 80  
81 82 83 84 85 86 87 88 89 90  
91 92 93 94 95 96 97 98 99 100  
 

Quiz A 학습에 총 10명의 학생이 있다.

학생들의 중간고사 점수는 다음과 같다.

[70, 60, 55, 75, 95, 90, 80, 80, 85, 100]

for문을 사용하여 평균을 구하는 프로그램을 완성하시오.

In [29]:
std_score = [70, 60, 55, 75, 95, 90, 80, 80, 85, 100]
sum = 0;
avg = 0;
for i in std_score:
    sum = sum + i
avg = sum/len(std_score)
print("avg: ", avg)
 
avg:  79.0
 

while문을 사용해 1부터 1000까지의 자연수 중 3의 배수의 합을 구해 보자

In [33]:
i=1
sum=0
while 1000>=i:    
    if i%3 == 0 or i==1:
        sum = sum + i
    i = i+1    
    
print(sum)
 
166834
 

4차시 종합 과제

 

1번

In [1]:
num1 = int(input("player1님 숫자를 입력하세요."))
print('----------------------------')
while True:
    num2 = int(input("player2님 숫자를 입력하세요."))
    if num1 == num2:
        print(num2, "is correct number!")
        break
    elif num1>num2:
        print(num2, "is small number !",end='\n\n')
    elif num1<num2:
        print(num2, "is big number !",end='\n\n')
print("game over")
    
 
player1님 숫자를 입력하세요.20
----------------------------
player2님 숫자를 입력하세요.1
1 is big number !

player2님 숫자를 입력하세요.20
20 is correct number!
game over
 

2번

In [1]:
while True:
    num1 = int(input("player1님 숫자를 입력하세요."))
    print('----------------------------')
    if num1 >=1 and num1<=10:
        break;
    print("1~10사이의 숫자를 입력하세요")
    
while True:
    num2 = int(input("player2님 숫자를 입력하세요."))
    if num2<1 or num2 >10:
        print("1~10사이의 숫자를 입력하세요.")
        continue
    if num1 == num2:
        print(num2, "is correct number!")
        break
    elif num1>num2:
        print(num2, "is small number !",end='\n\n')
    elif num1<num2:
        print(num2, "is big number !",end='\n\n')
print("game over")
    
 
player1님 숫자를 입력하세요.55
----------------------------
1~10사이의 숫자를 입력하세요
player1님 숫자를 입력하세요.10
----------------------------
player2님 숫자를 입력하세요.55
1~10사이의 숫자를 입력하세요.
player2님 숫자를 입력하세요.11
1~10사이의 숫자를 입력하세요.
player2님 숫자를 입력하세요.7
7 is big number !

player2님 숫자를 입력하세요.-10
1~10사이의 숫자를 입력하세요.
player2님 숫자를 입력하세요.5
5 is big number !

player2님 숫자를 입력하세요.10
10 is correct number!
game over
 

3번

In [13]:
count =0
count_max = 5

while True:
    num1 = int(input("player1님 숫자를 입력하세요."))
    print('----------------------------')
    if num1 >=1 and num1<=10:
        break;
    print("1~10사이의 숫자를 입력하세요")
    
while True:
    if count >= count_max:
        print("5번의 기회를 모두 사용하셨습니다.")
        break
    
    num2 = int(input("player2님 숫자를 입력하세요."))
    if num2<1 or num2 >10:
        print("1~10사이의 숫자를 입력하세요.")
        continue
    
    count = count +1
    
    if num1 == num2:
        print(num2, "is correct number!")
        break
    elif num1>num2:
        print(num2, "is small number !",end='\n\n')
    elif num1<num2:
        print(num2, "is big number !",end='\n\n')
print("game over")
    
 
player1님 숫자를 입력하세요.11
----------------------------
1~10사이의 숫자를 입력하세요
player1님 숫자를 입력하세요.10
----------------------------
player2님 숫자를 입력하세요.1
1 is small number !

player2님 숫자를 입력하세요.2
2 is small number !

player2님 숫자를 입력하세요.3
3 is small number !

player2님 숫자를 입력하세요.4
4 is small number !

player2님 숫자를 입력하세요.5
5 is small number !

5번의 기회를 모두 사용하셨습니다.
game over
In [ ]:
 

8_day.ipynb
0.01MB

 

 

 

 

1. 모듈

  • 모듈이란 함수나 변수 또는 클래스를 모아 놓은 파일
  • 모듈은 다른 파이썬 프로그램에서 불러와 사용할 수 있게끔 만든 파이썬 파일이라고도 할 수 있음
In [6]:
import mod1

print(mod1.add(2,1))
 
3
In [9]:
# 이렇게 호출하면 모듈 이름을 사용하지 않아도 된다.
from mod1 import sub
In [8]:
sub(5,2)
Out[8]:
3
In [11]:
from mod2 import *
add(1,2)
Out[11]:
3
In [13]:
import mod3
 
5
2
In [17]:
import mod4
In [26]:
import hello13
 
__name__: hello13
In [28]:
import sys
sys.path
Out[28]:
['C:\\Users\\kimde',
 'C:\\ProgramData\\Anaconda3\\python37.zip',
 'C:\\ProgramData\\Anaconda3\\DLLs',
 'C:\\ProgramData\\Anaconda3\\lib',
 'C:\\ProgramData\\Anaconda3',
 '',
 'C:\\ProgramData\\Anaconda3\\lib\\site-packages',
 'C:\\ProgramData\\Anaconda3\\lib\\site-packages\\win32',
 'C:\\ProgramData\\Anaconda3\\lib\\site-packages\\win32\\lib',
 'C:\\ProgramData\\Anaconda3\\lib\\site-packages\\Pythonwin',
 'C:\\ProgramData\\Anaconda3\\lib\\site-packages\\IPython\\extensions',
 'C:\\Users\\kimde\\.ipython']
 

2. 예외처리

In [29]:
4/0
 
---------------------------------------------------------------------------
ZeroDivisionError                         Traceback (most recent call last)
<ipython-input-29-221068dc2815> in <module>
----> 1 4/0

ZeroDivisionError: division by zero
In [30]:
try:
    4/0
except ZeroDivisionError:
    print("0으로 나누었음")
 
0으로 나누었음
In [31]:
try:
    4/0
except ZeroDivisionError as e:
    print(e)
 
division by zero
In [33]:
f=open("bbb.txt",'r')
 
---------------------------------------------------------------------------
FileNotFoundError                         Traceback (most recent call last)
<ipython-input-33-093f96f3ea3d> in <module>
----> 1 f=open("bbb.txt",'r')

FileNotFoundError: [Errno 2] No such file or directory: 'bbb.txt'
In [36]:
try:
    f = open("bbb.txt",'r')
except ZeroDivisionError as e:
    print(e)
except FileNotFoundError as e:
    print(e)
 
[Errno 2] No such file or directory: 'bbb.txt'
In [38]:
try:
    f=open("ccc",'r')
except:
    print("에러 발생")
else:
    data = f.read()
    f.close()
 
에러 발생
 

예외처리 과제

In [2]:
while True:  
    try:
        a,b =map(int, input("2개 정수 입력: ").split())
        c= a/b
    except ValueError:
        print("유요한 정수가 아닙니다. 다시 입력하세요.")
    except ZeroDivisionError:
        print("0으로 나눌 수 없습니다. 다시 입력하세요")
    else:
        break
print(a,'/',b,'=',c,'입니다.')
 
2개 정수 입력: 10
유요한 정수가 아닙니다. 다시 입력하세요.
2개 정수 입력: 10 하나
유요한 정수가 아닙니다. 다시 입력하세요.
2개 정수 입력: 10 0
0으로 나눌 수 없습니다. 다시 입력하세요
2개 정수 입력: 4 1
4 / 1 = 4.0 입니다.

7_day.ipynb
0.01MB

 

 

 
 

파이썬 함수 기본 예제

In [1]:
result = 0
def adder(num):
    global result
    result += num
    return result

print(adder(3))
print(adder(4))
 
3
7
In [5]:
result1 = 0
result2 = 0

def adder1(num):
    global result1
    result1 += num
    return result1

def adder2(num):
    global result2
    result2 += num
    return result2
print(adder1(3))
print(adder1(4))
print(adder2(3))
print(adder2(7))
print(result1)
print(result2)
 
3
7
3
10
7
10
 

self는 본인 자신을 가리키는 것 이다.

In [24]:
class Calcurator:
    def __init__(self):
        self.result=0
        
    def adder(self, num):
        self.result+=num
        return self.result
    def sub(self, num):
        self.result -=num
        return self.result
In [25]:
cal1 = Calcurator()
In [26]:
cal1.adder(4)
Out[26]:
4
In [27]:
cal2 = Calcurator()
In [28]:
cal2.adder(3)
Out[28]:

 

3
In [29]:
cal1.sub(2)
Out[29]:
2
 

클래스 기본 구조

In [30]:
class Student:
    name = "홍길동"
    def info(self):
        print("제 이름은 "+self.name + "입니다.")
In [33]:
inst = Student()
inst.name
Out[33]:
'홍길동'
In [34]:
inst.info()
 
제 이름은 홍길동입니다.
 
init(self) 는 생성자이다.

생성자: 객체가 생성될때 수행되는 메소드

 

In [ ]:
class Student:
    name = "홍길동"
    def info(self):
        print("제 이름은 "+self.name + "입니다.")
 

University 클래스는 Student 클래스로부터 상속 받고있다.

In [40]:
class University(Student):
    major = "컴퓨터공학"
    name="이순신"
    
    def intro(self):
        print("제이름은 "+self.name+"이고 전공은"+self.major+"입니다.\n")
In [41]:
inst2=University()
In [37]:
inst2.major
Out[37]:
'컴퓨터공학'
In [38]:
inst2.name
Out[38]:
'홍길동'
 

부모 클래스의 변수 name을 University 자식 클래스에서 재정의(오버라이딩) 하였다.

In [42]:
inst2.name
Out[42]:
'이순신'
 

응용 예제

In [44]:
class Calculator():
    def __init__(self):
        self.rsult=0
    def add(self, num1, num2):
        self.result = num1 + num2
        print(self.result)
In [47]:
class UpgradeCalculator(Calculator):
    def __init__(self):
        self.result = 0
    def minus(self, num1, num2):
        self.result = num1 - num2
        print(self.result)
In [48]:
cal1 = UpgradeCalculator()
cal1.add(1,2)
cal1.minus(3,1)
 
3
2
In [66]:
class exam():
    korean, english, math = 0, 0, 0
    def __init__(self):
        self.result=0
        
    def f_input(self,input_korean, input_english, input_math):
        korean = input_korean
        english = input_english
        math = input_math
        self.result = korean + math + english
        
    def f_sum(self):
        print(self.result)
        
    def f_avg(self):
        print(self.result/3)
        
    def f_print(self):
        print("총점:", self.result, "평균:",self.result/3)
        

 

In [67]:

 

exam1 = exam()
exam1.f_input(10, 20, 30)
exam1.f_sum()
exam1.f_avg()
exam1.f_print()
 
60
20.0
총점: 60 평균: 20.0

 

 

dataA <- read.table("C:/rData/exampleData1.txt", sep=" ")
dataA

names(dataA) <- c("gender", "rScore", "pythonScore", "javaScore")
dataA

# 변수 명이 텍스트 파일에 있을 경우 header = TRUE 를 사용해서 번수 이름을 지정한다.
dataB <- read.table("C:/rData/exampleData2.txt", header = TRUE, sep=" ")
dataB

read.csv("C:/rData/exampleData3.txt")

URL="http://archive.ics.uci.edu/ml/machine-learning-databases/cpu-performance/machine.data"
cpuPerformence <- read.table(URL, header = FALSE, sep = ",")
head(cpuPerformence)

gender <- c("M", "F", "M", "F", "F")
rScore <- c(58, 66, 92, 78, 88)
pythonScore <- c(88, 55, 98, 75, 58)
javaScore <- c(66, 88, 90, 78, 66)
dataW <- data.frame(gender, rScore, pythonScore, javaScore)
write.table(dataW, "C:/rData/A.txt", quote=TRUE, row.names=FALSE)
write.table(dataW, "C:/rData/B.txt", quote=FALSE, row.names=FALSE, sep=",")

str(iris)

head(iris)
write.csv(iris, "C:/rData/iris.csv", quote=FALSE, row.names=FALSE)

x <- c(1, 3, 5, 7, 9)
y <- c(3, 4, 5, 6, 7)

if(mean(x) == mean(y))
  {print("mean(x) is equal to mean(y)")}

if(var(x) > var(y))
{print("var(x) is greater than var(y)")
  print(var(x))
  print(var (y))}

if(is.vector(x))
{print("x is vector")}else
{print("x is not vector")}

signal <- function(light){
  if(light == "red")
    {print('정지')}else if(light=="green")
    {print("직진")}else
    {print("몰름")}
}
light <- "red"
signal(light)


jumsu <- c(99, 20, 60, 80, 70)
grade <- ifelse(jumsu >= 60, "Pass", "Fail")
data.frame(jumsu, grade)

score <- c(1, 2, 3, 4, 5)
a <- 2
switch(a, "1"=mean(score), "2"=sum(score), "3"=var(score))

evenSum <- 0
oddSum <- 0
for(x in 1:100)
  if(x %% 2 == 0) {
    evenSum <- evenSum + x
  } else {
    oddSum <- oddSum + x
  }
print(evenSum)
print(oddSum)

data <- c(1, NA, NA, 2, 3, 4, 5, NA, 6, 7, 8, NA, 9, 10, NA)
completeData <- c()
for(x in data)
  if(!is.na(x)) {
    completeData <- c(completeData, x)
  } else {
    next
  }
print(completeData)
print(length(completeData))


data <- c(1, NA, NA, 2, 3, 4, 5, NA, 6, 7, 8, NA, 9, 10, NA)
for(x in 1:length(data)) {
  if(is.na(data[x])) data[x] <-0
}
print(data)
print(length(data))
print(mean(data))


gugudan <- function(dan){
  i=1
  while (i<=9) {
    guguDan <- i*dan
    print(guguDan)
    i = i+1
  }
}
gugudan(2)

sum <- 0
i <- 0
repeat{
  sum <- sum+i
  if(sum >= 3000)
    break
  i <- i+1
}
print(i)
print(sum)

 

txt 파일을 읽어오는데 오류가 발생하였다. 오류의 원인은 txt 파일 마지막에 줄내림을 하지 않아서였다.

 

마지막 문자다음에 enter를 눌러 커서를 내리면 오류가 해결된다.

마지막 라인이 완성 되었 다는 것은 공백 열이 필요하다는 것 같다.

'빅데이터 자료처리' 카테고리의 다른 글

R언어 - 파일 입출력 & 반복문 테스트  (0) 2020.07.07
R 데이터 구조  (0) 2020.06.30
R언어 역사 & 설치  (0) 2020.06.29

<딕셔너리 자료형>

- 단어 그대로 해석하면 사전이라는 뜻

- Key(키)를 통해 Value(값)라는 것을 한 쌍으로 갖는 자료형

- 리스트나 튜플처럼 순차적으로 해당 요소 값을 구하지 않고 Key를 통해 Value를 얻음

- key와 value들을 중괄호로 묶어서 정의

- key와 value는 콜론(:)으로 구분

- key는 중복 및 변경 불가. 중복시 앞에 값에 덧씌운다

- key: 변하지 않는 값을 사용

- Value: 변하는 값과 변하지 않는 값 모두 사용

{ Key1:Value1, Key2:Value2, Key3:Value3, ... }

- key에는 숫자, 문자열, 튜플만 사용 가능

- value는 어떤 값도 사용 가능

- 인덱싱, 슬라이싱 불가능

- value 변경 가능

- 딥러닝에서 자료 분석할 때 사용한다.

 

 

 

딕셔너리 값 삭제하기

 

키가 2인 값을 del 함수를 사용하여 제거하였다.

 

딕셔너리 키 값이나 속성 값을 참조하는 방법

 

딕셔너리에서 dic[2] 이런 식으로 값을 찾을 때 값이 없으면 오류가 발생한다.

dic[2]을 대신해서 dic.get(2) 이런 식으로 get() 함수를 활용하면 오류가 발생하지 않는다.

딕셔너리 키 값 존재 여부 확인하는 방법

 

<집합 자료형>

집합에 관련된 것들을 쉽게 처리하기 위해 만들어진 자료형

 

특징

- 중복을 허용하지 않는다.

- 순서가 없다(Unordered)

- 인덱싱으로 접근하려면 리스트나 튜플로 변환한 후 가능

ㅣ이 2개지만 중복을 허용하지 않아 집합에는 l 하나가 존재한다.

순서가 엉망 진창으로 들어가 있는 것을 확인할 수 있다.

 

 

집합을 리스트로 변환하였다.

 

차집합, 합집합, 교집합

 

집합에 값 추가해보기

<불 자료형>

- 논리 연산자를 통한 논리 연산이나. 수치를 비교할 때 사용하는 비교 연산자의 결과로 사용한다.

- 논리곱을 의미하는 and(&), 논리합을 의미하는 or(|)

 

 

리스트의 원소가 모두 빠져나가면 false값이 된다.

 

 

<특이한 파이썬의 값 성질>

<파이썬 주석>

아래 자료는 오늘 살펴본 주피터 노트 파일입니다.

3_day.ipynb
0.02MB

<R 데이터 구조>

벡터: 동일한 유형의 데이터를 담는 R의 기본적인 1차원의 데이터 구조이다.

 

팩터: 명목형 또는 순서형 데이터를 담는 범주형 데이터 구조이다.

Tip) 범주형 데이터 : 설문한 사람이 남자인지 여자의 범주인지(성별) 

 

행렬: 동일한 유형의 데이터를 담는 2차원의 데이터 구조이다.(벡터가 여러개 모임 )

 

데이터 프레임: 2차원의 데이터 구조를 갖고 있으나 여러 가지 유형을 가진다.

(데이터분석에 가장 많이 사용되는 데이터 구조)

 

데이터 테이블: 데이터 테이블은 데이터 프레임 보다 데이터의 가공이 편리하고 매우 빠른 수행 속도를 갖고 있는 데이터 구조이다.

 

리스트: 리스트를 구성하는 성분은 벡터, 행렬, 배열, 데이터프레임, 다른 리스트 등이 될 수 있고 성분의 길이와 차원이 동일할 필요가 없는 데이터 구조 이다.

 

 

 

<변수>

- 프로그램이 사용하는 데이터를 일시적으로 저장하기위해서 사용하는 메모리 공간이다.

- 변수에 데이터를 담을 때는 기호 "<-" 또는 "="를 사용한다. 여기서 변수명은 왼쪽에 둔다.

- 변수는 영문자, 숫자, 밑줄 문자(_) 를 활용한다

- 대, 소문자를 구별한다.

- 기본 용어 x

 

<자료형(mode)>

정수 인식 방법  x <- 100L

L을 붙이지 않으면 실수로 인식한다.

mode(x) 

결과 "numeric" 

typeof(x)

결과 "integer"

 

<백터>

- R에서 가장 기본적인 데이터 구조는 벡터이다.

- 벡터는 동일한 유형의 1차원 데이터를 담는 그릇이다.

- 벡터의 속성은 데이터의 유형, 길이, 원소의 이름이 있다.

- 함수 mode(), length(), names()를 이용하여 확인할 수 있다.

- 함수 c(), 수열 연산자(:), seq(), rep(), scan(), paste() 등을 이용하여 수치형, 문자형, 논리형 벡터를 생성할 수 있다.

- c는 concatenate의 약자이다.

  tip) concatenate 연쇄시키다.
- xvec <- c(11, 22, 33, 44, 55) -> 백터 사용방법

 

tip)벡터의 값들에 타입이 다르면 가장 우선 순위가 높은 타입으로 통일된다.

    문자열 > 정수형 > 불린타입

 

- 수열 연산자(:)에 의한 벡터 생성

seq()함수를 이용한 벡터 생성 - for 문과 비슷하다.

seq(from, to, by)

 

 

 

 

rep()함수를 이용한 벡터 생성

rep()는 일정한 규칙을 갖고 반복된 벡터를 생성하는 함수이다.

rep(x, times, each)

 

scan()함수를 이용한 벡터 생성

scan()함수를 이용하여 직접 콘솔에서 데이터를 입력 할 수 있고

외부파일에서 읽어 올 수도 있다.

scan(file, what, sep)

sep은 separate 의 약자이다.

what은 자료형이다.

 

 

 

 

paste() 함수를 이용한 반복되는 문자열 생성

paste()함수를 이용하여 반복되는 문자열을 쉽게 생성할 수 있다.

 

append함수는 완전히 새로운 벡터를 생성시키는 함수이며 기존 벡터에는 영향을 주지 않는다.

 

<벡터의 원소 추출>

첨자[]을 사용한 벡터의 원소 추출

첨자에 -숫자를 넣으면 숫자 번째의 값이 벡터에서 제거가 된다.

 

names()함수를 이용한 벡터의 접근

names()함수를 통해 각 배열의 항목에 이름이 붙는다.

배열에 붙은 이름을 통해 그 배열의 원소를 찾아낼 수 있다.

 

R에서 null값은 NA로 표현

mean은 평균을 계산하는 함수이다. 2번째 매개변수에 벡터의 값에 조건을 걸 수 있다.

 

 

그외 논리 연산자

x <- TRUE

isTRUE(x)

8진수 표현 -> 0o34

 

제곱 연산자

>>> a = 3

>>> b = 4

>>> a**b

81

 

나머지 연산자

>>> 3 % 7

3

 

몫을 반환하는 연산자

>>> 7//4

1

소수점을 버린다.

 

인덱싱이란 무언인가를 "가리킨다"는 의미

슬라이싱은 무엇인가를 "잘라낸다"는 의미

 

튜플 & 문자열

- 변경이 불가능 하다

 

특이한 리스트 참조방식 

리스트에 마이너스 값을 사용하면 거꾸로된 순서로 참조하게 됩니다.

리스트를 사용할 때 콜론(:)을 사용하여 연속된 값을 참조할 수 있다

a[::2] 같은 경우 처음부터 끝까지 2칸씩 넘어가며 값을 출력한다.

 

 

 

 

아래 코드는 오늘 살펴본 주피터 노트 파일입니다.

현재 블로그에 저장된 내용외 추가적인 내용도 포함되있으니 기초 다지기에 좋습니다.

day_2.ipynb
0.02MB

R이란?

- 뉴질랜드 오클랜드 대학교의 로스 이하카(Ross Ihaka)와 로버트 젠틀맨에 의하여 1990년초에 개발 되었다.

- 통계 계산과 그래픽스 지원 공개 소프트웨어

- 다양한 환경에서 설치 가능

- 통계분석, 데이터 시각화, 데이터마이닝, 빅데이터, 인공지능 등 다양한 전공 분야에서 활용

- 다양한 패키지

- 객체지향언어나 함수형프로그래밍언어에서 볼 수 있는 특징 포함

- R을 지원하는 다양한 GUI가 있다.

 

R studio 의 정상 작동을 위해 R, R Studio, R Tools를 다운로드 하여야 한다.

 

R 설치 방법

1. (www.r-project.org)접속

 

R: The R Project for Statistical Computing

 

www.r-project.org

 

2. CRAN 클릭

여기서 아무거나 본인은 맨 위 선택

 

3. 본인 운영채제 선택

 

4. base 클릭

 

5. 재일 위에 큰 글자 다운로드 클릭

저는 4.0.2 버전이군요

 

R Studio 설치 

 

(https://rstudio.com/products/rstudio/download/)접속 and free 버전 다운

 

Download RStudio

RStudio is a set of integrated tools designed to help you be more productive with R. It includes a console, syntax-highlighting editor that supports direct code execution, and a variety of robust tools for plotting, viewing history, debugging and managing

rstudio.com

R tools 설치

https://cran.r-project.org/bin/windows/Rtools/

 

Using Rtools40 on Windows

Starting with R 4.0.0 (released April 2020), R for Windows uses a brand new toolchain bundle called rtools40. This version of Rtools upgrades the mingw-w64 gcc toolchains to version 8.3.0, and introduces a new build system based on msys2, which makes easie

cran.r-project.org

 

+ Recent posts