R로 구구단하기

2020/R 2019. 11. 18. 09:04
반응형

 

반응형

'2020 > R' 카테고리의 다른 글

R의 기본 자료형  (0) 2019.11.15
R Vector  (0) 2019.11.15
R객체생성,목록보기,객체의 삭제  (0) 2019.11.15
R 산술연산, 비교연산, 논리연산  (0) 2019.11.15
RSudio(IDE)설치하기  (0) 2019.11.14
블로그 이미지

꽃꽂이하는개발자

,

R의 기본 자료형

2020/R 2019. 11. 15. 17:57
반응형

#R의 기본 자료형
#float(numeric)
n <-3.14159
n

#integer: 뒤에 L을 부여
i = 314L
i

#complex: 복소수 : 실수부 + 허수부i
cpx= 2+3i
cpx

#문자형 : ""
s <- "r programming"
s

#Data 날짜형 : 문자형처럼 취급되지만 Data형으로 변환될 수 있다.
d<- "2019-11-11"
d

v <- c(1,2,3,4,5)
#객체 확인 is()함수로 확인
is(v)
i
is(i) #값이 1개여도 R은 벡터로 처리한다

#is 계열 함수 : 세부적으로 데이터 타입 확인
is.numeric(v)
is.vector(v)
is.integer(v) #정수 형태로 되어 있어도 기본적으로는 float로 처리

#객체의 데이터를 변환 : as 계열 함수
v
v <- as.integer(v) #기존의 float형태였는데 integer로 타입 변환해준거임
v
is.integer(v) #짜잔.. integer로 변환환

# 특수 데이터 타입들 : NA(결측치), NaN(Not A Number), Inf
#NA= 측정값이 없다, 
scores <- c(90,80,100,NA, 75)
scores
#NA, NaN, Inf 데이터에 포험되어 있으면 통계치가 왜곡되거나 에러 발생 가능
#-> 적절하게 처리 후 데이터를 분석해야 한다
is(scores)
is.na(scores) #결측치 포함여부 확인인
is(NA)
length(NA)

#NA와 Null의 비교
is(NULL)
is.null(scores)
is.null(NULL)
length(NULL) #NA와는 다르게 NULL은 메모리 공간 자체를 점유하지 않는다.

#Finite와 Infinite
is.finite(v)

div <-4/0
div

is.infinite(div) #무한수인가 여부 확인인

#NaN : 수학적으로 해석 불가능한 수
1 / 0 #Inf
1 / 0 + 1 / 0 #Inf
1 / 0 - 1 / 0 #NaN 수학적으로 정의가 불가한 수 

#도움말 (help)
help(seq)
?seq

#내장 수치 함수
scores <- c(90,80,70,95,100)
scores

mean(scores) #산술 평균
sum(scores) #산술 합산

mean(scores) == sum(scores) /length(scores)
median(scores) #중앙값값
min(scores); max(scores) #최소값, 최대값

scores2 <- c(90,80,70,NA, 100)
is.na(scores2)

mean(scores2) #결측치가 포함된 벡터의 산술계산은 NA로 출력

paste("Hello", "R", "Programming")
paste0("A", c(1,2,3,4,5))   #c는 소문자로
data = 1:45
data
#추출 size, 복원 여부 replace 설정할 수 있다
sample(data, size=10, replace=F) #복원 안했으니 중복 추출 안될 것것
sample(data, size=10, replace=T) #중복 추출 허용용

#문자열
#기본적인 출력 함수 : print
print("hello")

#문자열 합치기 : paste 함수
paste("Hello", "R", "Programming") #기본적으로는 공백문자 기준으로 합치기
paste("Hello", "R", "Programming", sep=",") # , 기준으로 합치기기

paste("A", c(1,2,3,4,5))
paste("A", c(1,2,3,4,5),sep="")

#sep 없는 paste는 paste0로 별도 구분되어 있다
paste0("A", c(1,2,3,4,5))

#수치 함수
pi #R 내장 객체
round(pi) #소수점 1자리에서 반올림
round(3.678)
round(3.678, 2)
ceiling(3.678); floor(3.678)# 올림과, 버림림

#사용자 정의 함수
stat <- function(x){
  #벡터로 Return 하면 여러 값을 동시에 반환할 수 있다.
    return (c(min(x), max(x), sum(x), mean(x), median(x)))
}
scores
summary <-stat(scores)
summary

# 패키지 : 필요할 때 기능을 추가
# 패키지 설치하고 로드하면 추가된 기능을 손쉽게 사용 가능
#설치된 패키지 확인
installed.packages()
#패키지의 도움말 확인
library(help="base")

#패키지 설치 ㅣ install.ackages()
install.packages("ggplot2")
#v패키지 업데이트(  update,packages()
update.packages("ggplot2")

#라이브러리 구 불러오기)
qplot(x) #ggplot2 의 퀵쓸롯 함수 사용할 수 있게 된다

#조건 분기
#if~else if~ else
x <-10L
#객체가 양수인지, 음수인지, 0인지 판별하는 함수
check_positive <- function(x){
  if(x>0){
    print("x는 양수입니다.")
  }else if(x<0){
    print("x는 음수 입니다.")
  }else{
    print("x는 0입니다.")
  }
}
check_positive(x)
check_positive(0)
check_positive(-10L)

#switch 객체의 값으로 분기
test_switch <- function(x){
  res <- switch(x,
                "1번째 조건",
                "2번째 조건",
                "3번째 조건!") #default는 없다
  return (res)
}
test_switch(1)
test_switch(2)
test_switch(3)
test_switch(4)
#ifelse(조건, 참일때 반환 값, 거짓일 때 반환값)
#R에서 가장 널리 활용되는 조건절
#ifelse문으로 양수, 음수, 0판별 함수
test_ifelse <- function(x) {
  #결과는 문자열 조합
  paste("x는", ifelse(x>0,
                     "양수입니다.",
                     ifelse(x==0, 
                            "0입니다",
                            "음수입니다.")
                     )
  )
}
test_ifelse(10)
test_ifelse(0)
test_ifelse(-10)

#반복문
#repeat : 최소 1회는 실행 중단 로직은 직접 작성해야 한다
test_repeat <- function(to=9){ #B는 TO의 기본값
  #1부터 TO까지 반복하면서 값을 출력
  cnt <-1
  
  repeat {
      print(cnt)
      cnt <- cnt +1
      if (cnt >to){
        break
      }
  }
  
}

test_repeat(5) # 1~5까지
test_repeat() #to는 기본값 9가 있으므로 생략가능
test_repeat(to=1) #repeat는 최소 1회는 수행

#while문 : 특정 조건을 만족하는 동안 반복
test_while <- function(to= 10) {
  cnt <- 1
  #조건에 따라 단 1번도 실행되지 않을 수도 있다.
  while(cnt <to){
    print(cnt)
    cnt <- cnt+1
  }
}
test_while(to=10)
test_while() #to는 기본값이 있으므로 생략 가능
test_while(1) # while은 조건에 따라 실행되지 않을 수도 있다.

#for(객체 in 벡터) : 반복을 위한 인덱스 변수는 없다.
test_for <- function(){
  nums <- c(2,3,4,5,6,7,8,9)
  for(num in nums){
    print(num)
  }
  
}

반응형

'2020 > R' 카테고리의 다른 글

R로 구구단하기  (0) 2019.11.18
R Vector  (0) 2019.11.15
R객체생성,목록보기,객체의 삭제  (0) 2019.11.15
R 산술연산, 비교연산, 논리연산  (0) 2019.11.15
RSudio(IDE)설치하기  (0) 2019.11.14
블로그 이미지

꽃꽂이하는개발자

,

R Vector

2020/R 2019. 11. 15. 17:54
반응형

 

반응형

'2020 > R' 카테고리의 다른 글

R로 구구단하기  (0) 2019.11.18
R의 기본 자료형  (0) 2019.11.15
R객체생성,목록보기,객체의 삭제  (0) 2019.11.15
R 산술연산, 비교연산, 논리연산  (0) 2019.11.15
RSudio(IDE)설치하기  (0) 2019.11.14
블로그 이미지

꽃꽂이하는개발자

,
반응형

반응형

'2020 > R' 카테고리의 다른 글

R의 기본 자료형  (0) 2019.11.15
R Vector  (0) 2019.11.15
R 산술연산, 비교연산, 논리연산  (0) 2019.11.15
RSudio(IDE)설치하기  (0) 2019.11.14
programming R 시작하기  (0) 2019.11.14
블로그 이미지

꽃꽂이하는개발자

,
반응형

 

반응형

'2020 > R' 카테고리의 다른 글

R의 기본 자료형  (0) 2019.11.15
R Vector  (0) 2019.11.15
R객체생성,목록보기,객체의 삭제  (0) 2019.11.15
RSudio(IDE)설치하기  (0) 2019.11.14
programming R 시작하기  (0) 2019.11.14
블로그 이미지

꽃꽂이하는개발자

,

RSudio(IDE)설치하기

2020/R 2019. 11. 14. 13:13
반응형

DOWNLOAD RSTUDIO 클릭!

 

저같은 경우는 연습용이라서

RStudio Desktop Free를 다운했어요!

 

자신의 운영체제에 맞는 설치파일을 다운!

그 후 쭉쭉 다음 다음 다음을 눌러주시면 

이렇게 바탕화면에 파일이 생겨납니다

그리고 RStudio 를 실행하셔서 R을 시작하면 됩니당.!

반응형

'2020 > R' 카테고리의 다른 글

R의 기본 자료형  (0) 2019.11.15
R Vector  (0) 2019.11.15
R객체생성,목록보기,객체의 삭제  (0) 2019.11.15
R 산술연산, 비교연산, 논리연산  (0) 2019.11.15
programming R 시작하기  (0) 2019.11.14
블로그 이미지

꽃꽂이하는개발자

,

programming R 시작하기

2020/R 2019. 11. 14. 13:00
반응형

http://www.r-project.org 접속!

http://www.r-project.org/ 메인화면이에요

접속후

Download에 CRAN을 눌러주세요

그러면

그러면 이런 화면이 나오는데

우리나라 Korea를 찾아 쭈욱 내려가 보아요!

다 비슷 비슷하니 아무거나 들어가시면 되세요

저는 맨 위에걸 들어갔어요

이런 화면이 뜨는데 자신의 운영체제에 맞는 걸 다운 받으시면되요

저는 윈도우를 사용하기에 Download R for Windows 를 클릭

 

base 클릭

Download R 3.6.1 for Windows 클릭하시면

다운됩니당

 

그 후 쭉 다음 다음 다음 눌러서 완료해주시면 됩니다!

반응형

'2020 > R' 카테고리의 다른 글

R의 기본 자료형  (0) 2019.11.15
R Vector  (0) 2019.11.15
R객체생성,목록보기,객체의 삭제  (0) 2019.11.15
R 산술연산, 비교연산, 논리연산  (0) 2019.11.15
RSudio(IDE)설치하기  (0) 2019.11.14
블로그 이미지

꽃꽂이하는개발자

,