※ 해당 내용은 ADP를 준비하며 학습한 내용을 정리한 것 입니다.

 

1. 데이터 탐색

데이터를 분석하기 전에 대략의 데이터의 특성을 파악하고, 데이터에 대한 통찰을 얻기 위해 다각도로 접근한다.

 

  . 기초 데이터 탐색 ( 예시 )

data(iris)
head(iris, 10) # 데이터 앞 10줄만 출력
str(iris) # 데이터 구조 파악
summary(iris) # 데이터의 기초 통계량 출력
cov(iris[,1:4]) # 공분산
cor(iris[,1:4]) # 상관계수

2. 결측값 처리

결측값을 어떻게 처리하느냐에 따라 작업속도가 달라진다.

 

 . 간단한 결측값 제거

  → 해당 방법은 결측값이 포함된 관측치를 모두 제거한다. 결측값이 넓게 분포된 경우 주의가 필요.

y <- c(1,2,3,NA)
is.na(y)

y[complete.cases(y)] # 결측값 제거

y

 

R에서 주로 결측값처리에는 Amelia II, Mice, mistools 등 여러가지 패키지가 활용.

 

이 중 Amelia 패키지를 실습해 보자

 

library(Amelia)

data(freetrade)
head(freetrade)
str(freetrade)

# m = 몇개의 imputation 데이터셋을 만들지 결정하는 값
# ts = 시계열 정보, cs = cross-sectional 정보
# 즉, 아래 모델에서는 연도와 국가를 고려해
# 모든 freetrade 정보를 활용한 결측값에 대한 imputation(대체)가 이루어 짐
a.out <- amelia(freetrade, m=5, ts = "year", cs = "country")
hist(a.out$imputations[[5]]$tariff, col="grey", border="white")
save(a.out, file = "imputation.RData")
write.amelia(obj=a.out, file.stem="outdata")

missmap(freetrade) # 결측값 처리 전

 

#결측값 처리, inputation
freetrade$tariff <- a.out$imputations[[5]]$tariff
missmap(freetrade) # 결측값 처리 후

3. 이상값 검색

 . 이상값 검색의 활용

  ① 전처리를 어떻게 할지를 결정

  ② 부정사용방지 시스템에서 규칙을 발견하는데 사용

 

 . 이상값의 분류

  ① 의도하지 않게 잘못 입력한 경우 ( a1 )

  ② 의도하지 않계 입력되었으나 분석 목적에 부합하지 않아 제거해야하는 경우 ( a2 )

  ③ 의도되지 않은 현상이지만 분석에 포함해야 하는 경우 ( a3 )

  ④ 의도된 이상값인 경우 ( b1 )

 

 . 관련 알고리즘

  → ESD(Extreme Studentized Deviation)

      : 평균으로부터 K*표준편차만큼 떨어져 있는 값을 이상값으로 판단, 일반적으로 K=3으로 한다.

 

  . 상자그림으로 이상값 식별

x <- rnorm(100)
x <- c(x, 19, 28,30) # 이상값 추가
boxplot(x)

 

  . outliers 패키지 사용

library(outliers)
set.seed(1234)
y=rnorm(100)
outlier(y) # 평균과 가장 많이 차이나는 값 출력
outlier(y, opposite=TRUE)
dim(y) = c(20,5) # 행 20 열 5의 행렬 생성
outlier(y) # 각 열의 평균과 가장 차이가 많은 값을 각 열별로 출력

 # 각 열별로 반대 방향으로 열 평균과 가장 차이가 많은 값 출력

outlier(y, opposite = TRUE)
boxplot(y)

※ 본 내용은 개인의 ' 로봇 기구 개발 기사 ' 시험 준비를 위해 NCS 학습모듈 내용을 정리한 자료입니다.

 

1. 특허 개요

① 특허 (patent)

  → 지금까지 없었던 물건 또는 방법을 최초로 발명하였을 경우 그 발명자에게 주어지는 권리

  → 출원일로부터 20년 동안 특허권자 이외의 제 3자의 실시를 배척할 수 있는 배타적인 권리

 

② 특허 출원

  (1) 발명자 및 출원인

     → 발명자가 특허를 받는 것이 원칙이나 발명자로 부터 적법하계 승계를 받은 자도 특허를 받을 수 있음.

     → 이처럼 기업도 특허를 양도 받아 특허권자가 될 수 있음.

  (2) 특허의 대상

     → 대상: 자연법칙을 이용한 기술적 사상의 창작으로서 독창적이며, 산업상 이용할 수 있는 것 ( 특허요건을 갖춘 것 )

     → 출원 전 타당성 검토 및 선행기술 존재 여부 조사로 불필요한 출원비용 절감 + 적정한 권리 확보 가능

  (3) 선출원주의

     → 동일한 발명이 2개 이상 출원되었을 때, 어느 출원인에게 권리를 부여할 것인가를 결정하는 기준

     → 선출원 or 선발명 2가지 방법이 있으나 우리나라는 '선출원주의'를 채택하고 있음.

 

③ 특허 심사 절차

   (1) 방식 심사

     → 절차상의 흠결을 점검하는 심사 ( 서식의 필수사항 기재 여부, 기간의 준수 여부, 증명서 첨부 여부 등 )

   (2) 심사 청구

      → 심사 업무 경감을 위해 모든 출원을 심사하는 대신 출원인이 심사를 청구한 출원에 대해서만 심사하는 제도

      → [참고] 특허권을 얻기보다는 타인의 권리 획득을 막기 위한 출원 = 방어 출원 이라고 함.

   (3) 출원 공개

      → 출원 후 1년 6개월이 결과하면 그 기술 내용을 특허청이 공보의 형태로 일반인에게 공개하는 제도

   (4) 실체 심사

      → 특허 요건, 즉 산업상 이용 가능성, 신규성 및 진보성을 판단하는 심사

   (5) 특허 결정

      → 출원이 특허 요건을 충족하는 경우, 심사관이 특허를 부여

   (6) 설정 등록과 등록 공고

      → 특허 결정이 되면 출원인은 등록료를 납부, 특허권 설정을 등록하여야 함.

   (7) 거절 결정

      → 출원인이 제출한 의견서 및 보정서에 의하여도 거절 이유가 해소되지 않을 경우 특허를 부여하지 않는다.

   (8) 거절 결정 불복 심판

      → 거절 결정을 받은 자가 특허심판원에 거절 결정이 잘못되었음을 주장, 거절 결정의 취소를 요구하는 심판 절차

   (9) 무효 심판

      → 심사관 또는 이해 관계인이 무효 사유가 있음을 이유로 그 특허권을 무효시켜 줄 것을 요구하는 심판 절차

          ( 무효사유: 특허요건, 기재불비, 모인출원 등 )

 

2. 특허 조사 및 분석

  ① 분석 범위 결정

     (1) 특허 조사 및 분석이 필요한 로봇 시스템이나 부품에 대해 정의

         → 개발하고자 하는 로봇 시스템이나 로봇 부품의 수준, 성능, 품질 등을 정량적으로 기술

     (2) 특허 조사 범위 결정

 

     (3) 기술별 핵심 키워드들을 도출 ( 핵심키워드+검색식, 3~5개 정도의 하위 기술을 결정 )

         → 핵심 키워드의 경우 로봇 엔지니어와의 협의를 통해 도출, 검색식의 경우 하기와 같은 점을 고려

 

          [검색식 고려 사항]

          가. 검색의 관점을 확실하게 + 우선순위 설정

          나. 하위 개념에서부터 시작, 상위 개념으로 검색 범위를 펼쳐가며 고려

          다. 적당한 범위의 검색식을 사용한다.

             → 너무 구체적이면 유효 특허가 검색안되고, 너무 넓게 하면 너무 많은 특허가 검색됨.

          라. 선별 중 검색식 작성 시 누락하였던 키워드 발견 시 검색식에 반영

          마. 특허에 서술되어 있는 실시 예를 이용하여 검색

             → 실시 예가 없다면, 특허에 서술되어 있는 청구항을 이용하여 검색

  ② 유효 특허 선별

     (1) 핵심 키워드+검색식을 활용, 특허 조사 ( 범위에 해당하는 국가만 조사 )

        → 아래의 표와 같이, 문헌번호, 제목, 출원인, 요약, 대표 청구항, 대표 도면등을 정리

    (2) 유효 특허 선정 ( 조사된 결과로 부터 )

       → 검색된 모든 특허를 분석하기엔 시간적으로 불가

       → 검색된 특허 중 권리 분석, 유사도 분석, 장벽도 분석 등을 실시 유효 특허를 선정함.

           ( 유효 특허는 검색된 특허의 제목+요약을 검토하여 세부 기술명별로 선정 )

    (3) 특허 landscape 분석

       → 목적: 기술 시장 성장 단계를 파악

 

       가. 주요 시장국 연도별 특허 동향 파악

     

 

      나. 주요 시장국 내외국인 특혀 출원 현황 파악

      다. IP 포트폴리오를 이용하여 기술 시장 성장 단계를 파악

 

  ③ 핵심 특허를 대상으로 지재권 확보 가능성 분석

    → 세부 기술별로 문제시될만한 핵심 특허를 선별, 법적 상태와 대응 방안을 분석.

 

    (1) 유사도 및 IP 장벽도 분석

       → 선행 특허와 개발될 기술 간의 유사도와 차이점을 설명, 대응 방안을 제시

    (2) 주요 장벽 특허 권리 분석을 실시

       → 결과에 해당 특허를 회피할 수 있는 기술적 방법이 포함되어 있어야 함.

    (3) 지재권 분석 가능성을 평가

 

. [참고] 특허 조사 및 분석의 경우 전문적인 기술을 요구하는 분야라 전문가에게 조사 및 분석을 의뢰하는 것이 좋음

 

3. 자율안전확인신고서(KCs) 작성

자율안전확인신고(KCs)란 자율안전확인 대상 기계&기구등을 제조, 설치 하거나 주요 구조 부분을 변경하는 경우 수입하는 자가 해당제품의 안전에 관한 성능이 자율안전기준에 맞는지 확인하여 고용 노동부 장관에게 신고하는 제도.

 

자세한 사항은 하기 사이트 참고

https://onetech.co.kr/%EA%B5%AD%EB%82%B4%EC%9D%B8%EC%A6%9D/%EA%B8%B0%EA%B3%84%EB%A5%98%EC%9E%90%EC%9C%A8%EC%95%88%EC%A0%84%EC%9D%B8%EC%A6%9Dkcs/

 

자율안전확인신고(KCs)ONETECH : ONETECH

국내인증CERTIFICATION SERVICE 자율안전확인신고(KCs) 인쇄 글자크기 확대하기 원본크기로 축소하기 산업안전공단 자율안전확인신고(KCs) 소개 자율안전확인 대상 기계•기구등을 제조, 설치 하거나

onetech.co.kr

 

  ① 안전보건공단 홈페이지에서 양식 및 관련 자료 다운로드

  ② 제품의 설명서를 작성

     → 제품명, 형식, 사용 목적, 제품의 특징, 외형, 안전에 관한 사항 등을 포함

  ③ 자율안전기준을 충족함을 증명하는 서류를 작성

     → [참고]한국로봇산업진흥원에서 집필한 로봇실무개론 부록 A에 상세한 내용 기재되어 있음, 작성시 참고

※ 해당 내용은 ADP 준비를 위해 데이터 마트 부분을 학습하며 정리한 내용입니다.

 

. 데이터 마이닝에서의 모델링

  → 다양한 분석 기법을 적용해 모델을 개발하는 과정, 데이터 마트를 개발해 놓으면 효율적이고 신속한 모델링 가능.

 

. 데이터 마트

  → 데이터의 한 부분, 특정 사용자가 관심을 갖는 데이터들을 담은 비교적 작은 규모의 데이터 웨어하우스.

 

. [참고] 데이터 웨어하우스와 마트 비교

  → 사용자의 기능 및 제공 범위를 기준으로 구분함.

  → 웨어하우스=전체의 상세 Data / 마트=특정 사용자 대상, 웨어하우스에 있는 일부 Data

 

1. R reshape를 활용한 데이터 마트 개발

① reshape

 

 reshape는 데이터 재정렬을 위한 기법 중 하나, 비견될 수 있는 기법 중 밀집화가 있다.

 

 . [참고] 밀집화

  → 데이터를 축소하고, 재정렬 ( ex) Excel Pivot )

  → 밀집화는 데이터가 간단하게 표시되지만, 원본이 손실되고, reshape는 원본이 유지된다는 점에서 차이가 있다.

 

 . melt() & cast 함수

  → reshape 패키지로 melt(), cast()만을 사용하여 데이터를 재구성 or 밀집화된 Data를 유연하게 생성 가능

  → melt로 데이터를 녹여 유연하게 만든 후 피벗과 비슷한 cast로 모양을 잡아준다고 생각하면 됨.

library(reshape)

names(airquality)
names(airquality) <- tolower(names(airquality)) #소문자 변환

# id에 있는 변수를 기준으로
# 각변수 Variable이란 이름의 데이터로 만듬
# [참고] na.rm = 결측값 제거
aqm <- melt(airquality, id=c("month","day"), na.rm = TRUE)
aqm

# cast를 이용해 엑셀의 Pivoting을 하듯이 자료를 변환

# cast( data, y축~x축~값 )

a <- cast(aqm, day~month~variable)
a

mean을 적용해 평균값을 산출할 수도 있다.

b <- cast(aqm, month~variable, mean) # 월별 평균값 계산
b

|를 이용하여 산출물을 분리해 표시도 가능하다. ( 조회에 적합 )

c <- cast(aqm, month ~ .|variable, mean)
c

margin 함수로 행/열의 소계도 산출 가능

# 행과 열의 소계 산출
d <- cast(aqm, month~variable, mean, margins=c("grand_row", "grand_col"))
d

 

특정 변수만 처리하고자 할 때 subset 옵션을 추가

# 특정변수만 처리하고자 할 때
e <- cast(aqm, month~variable, mean, subset = variable=="ozone")
e

 

range 옵션을 추가하면 min, max를 동시에 표시해 준다

 

# min, max 표시 ( min=_X1 / max=_X2 )
f <- cast(aqm, month~variable, range)
f

 

2. sqldf를 이용한 데이터 분석

sql를 R에서도 사용할 수 있도록 하는 패키지, 단순히 sqldf 괄호 안에 SQL 언어를 입력하여 사용하면 됨.

 

data(iris)
sqldf("select * from iris limit 10") # head와 같은 기능 구현

 

3. plyr : 데이터 분리+처리 후 결합

 

ply 함수와 multi-core 사용 함수를 이용하면 for loop를 간단하고 매우 빠르게 처리 가능

 

ply() 함수는 앞에 두 개 문자를 접두사로 가진다.

 

첫 번째 문자=입력하는 데이터 형태, 두 번째 문자= 출력하는 데이터 형태

 

  [ 접두사(데이터형태) 종류 ]

  가. d = 데이터 프레임 ( data.frame )

  나. a = 배열 ( array )

  다. l = 리스트 ( list )

 

실습에 사용할 Data 생성

set.seed(1) # 난수 고정, 같은 난수를 생성하도록 해줌

# runif( 생성할 난수 개수, 최소값, 최대값)
d = data.frame(year = rep(2012:2014, each=6), count = round(runif(9,0,20)))
d

. ddply을 사용해 데이터 프레임을 입력받아 sd와 mean의 비율인 변동계수 cv 구하기

 → test 결과 Rcpp 패키지도 추가해 주어야 함

library(plyr)
library(Rcpp)

ddply(d, "year", function(x){
  mean.count = mean(x$count)
  sd.count = sd(x$count)
  cv = sd.count/mean.count
  data.frame(cv.count=cv)
})

 

 . transform, summarise 옵션

  → summarise 옵션 = 변수에 명령된 평균이나 합 등을 계산해 줌

  → transform 옵션 = summarise 옵션과 달리 계산에 사용된 변수도 출력

 

ddply(d, "year", summarise, mean.count = mean(count))

ddply(d, "year", transform, total.count = sum(count))

4. 데이터 테이블 ( Data Table )

데이터 테이블은 데이터 프레임과 우사하지만 보다 빠른 그룹화, 순서화, 짧은 문장 지원 측면에서 매력적

 

data.frame과 같은 방법으로 생성되나, 행 번호가 콜론(:)으로 표시

# rnorm(n) 함수는 정규분포에서 n개의 난수 생성
DT <- data.table(x=c("b","b","b","a","a"),v=rnorm(5))
DT

 

기존 data.frame을 data.table 형식으로 변환 가능하다.

CARS <- data.table(cars)

. data.frame과 data.table 차이점

 → 데이터 테이블 = 인덱스(목차) 생성이 가능한 데이터 프레임

 → 따라서 검색과 같은 작업을 할 때 성능의 차이점을 보인다.

 → [참고] 검색 시 data.frame은 하나하나 비교해 찾는 벡터 검색 방식 / data.table은 목차를 이용, 바이너리 검색

※ 본 내용은 개인의 ' 로봇 기구 개발 기사 ' 시험 준비를 위해 NCS 학습모듈 내용을 정리한 자료입니다.

 

[ 1-2 작업 및 운영 환경 분석 ]

1. 로봇 응용 분야

①로봇 응용 분야

  →적용되는 분야에 따라 산업용, 전문 서비스용, 개인용 로봇으로 분류

1. 산업용 로봇  2. 전문 서비스용 로봇 개인 서비스용 로봇
[초창기]
대량 생산 체제를 갖춘 단순 가공&조립 공정 작업에 적용

[최근]
고속 정밀화 및 지능화 기능을 갖추고 다양한 형태의 작업이 가능하게 되어 적용 범위를 확대함.
[예시]
재난 극복 로봇, 군사용&사회 안전 로봇, 활선 작업용 로봇, 건설 작업용 로봇, 의료용 로봇 등

[예시]
청소 및 경비 로봇, 여가 지원 로봇, 노약자 재활 지원 로봇, 교육용 로봇 등

 

2. 작업 및 운용 환경 분석

  ① 적용할 공정과 작업의 특성 분석 ( 1단계 )

    → 공정 분석: 대상물이 어떤 경로로 처리되었는지를 발생 순서에 따라 분류, 각 공정 조건과 함께 분석하는 것

        ( 참고. 공정 조건에는 가공 조건, 경과 조건, 이동 거리 등이 있다. )

자동차 생산 공장에서의 공정 분석의 예

    → 작업 분석: 공정을 구성하고 있는 개개의 작업에 대한 작업 방법을 분석하는 것

자동차 생산 공장에서 용정 공정의 작업 분석의 예

  ② 1단계 결과를 바탕으로 공정에서 로봇 운용에 필요한 로봇 시스템의 기능 도출 ( 2단계 )

    → 로봇 시스템은 적용 공정&작업에 따라 로봇의 형상, 가반 하중, 속도, 작업 반경 등이 결정됨.

        ( 로봇 SI 엔지니어, 공정 및 작업 분석 엔지니어 간의 무수한 협의 필요 )

    → 가장 좋은 방법은 유사한 로봇 시스템이 설치 운영되고 있는 곳을 방문해 보는 것

    → 로봇 시스템을 운용할 사용자에 대한 분석도 매우 중요

        ( 운용할 사용자는 대부분 비전공자일 경우가 많음. 비전공자가 조작할 수 있도록 로봇 시스템 개발 필요 )

※ 해당 글은 R 기초를 복습하면서 작성한 자료입니다.

 

R의 데이터 구조

① 벡터: 하나의 스칼라값, 혹은 하나 이상의 스칼라 원소들을 갖는 단순한 형태의 집합.

   → c함수를 활용하여 선언 ( 하나의 Column=열 이라고 생각 )

x <- c(1, 10, 24, 40) #c함수를 이용하여 벡터 선언

 

②행렬: 행과 열을 갖는 m x n 형태의 직사각형에 데이터를 나열한 데이터 구조

  → [주의] 각 열이 같은 데이터 Type이여야 함

  → matrix 함수를 활용하여 선언

mx <- matrix(c(1,2,3,4,5,6), ncol=2)

  →[참고] rbind와 cbind를 사용해 벡터를 행렬에 합칠 수도 있다.

     ( rbind= 행 결합 / cbind= 열 결합 )

 

r1 <- c(10,20)
rbind(mx, r1) # row bind, 행 결합

c1<- c(20,20,20)
cbind(mx, c1) # Column bind, 열 결합

 

③ 데이터 프레임: 행렬과 유사한 2차원 목록 데이터 구조

  → [행렬과 차이점] 각 열이 서로 다른 데이터 타입을 가질 수 있음

  → data.frame 함수로 선언

income <- c(100,200,150)
car <- c("kia", "hyundai", "toyota")
marriage <- c(FALSE, TRUE, FALSE)

mydata <- data.frame(income, car, marriage)

 

외부 데이터 불러오기

 

① csv 파일 불러오기

 → read.table 함수를 이용하여 R에 Data frame 형태로 불러옴

data1 <- read.table("파일경로\파일명.csv", header=T,sep=",")

 → [참고] read.csv를 써도 무방, 대신 사용 시 sep=","로 구분자 구분 X

 

② txt 파일 불러오기

  → sep=","로 구분자 구분 X

data2 <- read.table("파일경로\파일명.txt", header=T)

 

③ xls/xlsx 파일 불러오기

  → 2가지 존재, csv파일 변환 후 불러오거나 패키지 이용

  → ex) RODBC 패키지 이용

library(RODBC)
new <- odbcConnectExcel("파일경로")
yourdata <- sqlFetch(new,"Sheet이름")
close(new)

 

R 기초 함수

① 수열 생성하기

  . rep(): 첫 번째 인수를 두 번째 인수만큼 반속하는 수자 벡터 생성

rep(1,3) # 1을 3번 반복하는 벡터 생성

  . seq(): 첫 번째 인수부터 두 번째 인수까지 1씩 증가하는 수열을 숫자 벡터 생성

    → [옵션1] by=n 으로 설정하면 n씩 증가하는 벡터 생성 가능

    → [옵션2] length=m 으로 설정하면 전체 수열의 갯수가 m개가 되도록 자동적으로 증가하는 수열 생성 

seq(1,5) # 1부터 5까지 1씩 증가하는 벡터 생성
seq(1,5,by=2) # by 옵션을 추가하여 2씩 증가하도록 변경
seq(1,5,length=7) # length 옵션을 추가하여 수열을 갯수 7개로 자동계산

 

② 기초적인 수치 계산

  . 사칙연산 ( +, -, *, / )

    → 사칙연산을 수행하고자 할 때 기본적으로 백터의 크기는 같아야 함.

 

   . 전치행렬과 행렬곱

    → 전치행렬= t함수 활용, 행렬곱 = %*% ( 행렬에 * 사용 시 단순히 스칼라 곱 반환 )

a <- c(2,7,3)
t(a) # a의 전치행렬
A <- a%*%t(a)

   . 역행렬

     → solve 함수 사용 ( 단, 정방행렬이어야 함. )

solve(mx) #mx의 역행렬 계산

   . 기초 기술 통계량 계산

    → mean(): 평균 / var(): 분산 / sd(): 표준편차 / sum(): 합 / median(): 중간값 / log(): 자연로그값

    → cov(): 공분산 / cor(): 상관계수 / sumary(): 사분위 수 계산 및 정보 요약

 

R 데이터 핸들링

b = c(1,2,3,4,5) 라는 벡터가 존재할 때,

 

① 벡터형 변수

  → b[2] : 2번째 원소에 해당되는 값만 불러옴

  → b[-4] : -를 붙이면 4번째 원소에 해당되는 값을 제외 후 불러옴

  → b[ c(2,3) ] : 벡터의 2, 3번째 위치 값을 선택

 

 ② 행렬/데이터 프레임 변수

  → 대괄호 안에 두가지 숫자가 추가될 뿐, 방식은 벡터형 변수와 동일.

mydata[3,2] # 3행 2열을 값을 불러옴
mydata[ ,2] # 2열의 값을 불러옴
mydata[4, ] # 4행의 값을 불러옴

 

  ③ 반복 구문과 조건문

 

   . For 반복문 : i값을 하나씩 증가시켜가며 중괄호 { } 안의 구문은 반복실행

a = c() # 아무런 값도 포함되지 않은 벡터 생성
for(i in 1:9){
  a[i] = i*i
}

    . while 반복문 : 괄호 ( ) 조건 하에서 중관호 { } 안의 구문을 반복

x=0
while( x<5 ){
  x=x+1
  print(x)
}

    . if ~ else 조건문: 특정 조건이 만족하는 경우 이후의 구문을 실행

StatScore <- c(10,11,2,14,11,9,7,15,6,7)
over10 <- rep(0,10)

# 10이상의 점수의 수 구하기
for(i in 1:10){
  if ( StatScore[i] >= 10) over10[i] = 1
  else over10[i] = 0
}
sum(over10)

 

    . 사용자 정의 함수: function()을 이용, 함수를 정의하여 사용 가능

addto <- function(a){
  isum = 0
  for(i in 1:a){
    isum = isum+i
  }
  print(isum)
}
addto(100)

 

기타 유용한 기능들

① paste() : 입력받은 문자열들을 하나로 붙여줌. ( 'sep=' 옵션을 통해 문자열 사이 구분자 추가도 가능 ) 

number <- 1:10
alphabet <- c("a","b","c")
paste(number,alphabet, sep=" to the ")

② substr() : paste와 반대로 주어진 문자열에서 특정 문자열을 추출함.

   → 해당 기능을 통하여 출력 결과를 간소화 할 수 있다.

country <- c("Korea", "Japan", "China", "Singapore", "Russia")
substr(country, 1, 3)

 

③ 자료형 데이터 구조 변환

  → 주어진 객체의 데이터 구조를 바꾸자 할 때 사용

  

   가. as.data.frame(x) : 데이터 프레임 형식으로 변환

   나. as.list(x) : 리스트 형식으로 변환

   다. as.matrix(x) : 행렬 형식으로 변환

   라. as.vector(x) : 벡터 형식으로 변환

   마. as.factor(x) : 팩터 형식으로 변환

 

④ 문자열을 날짜로 변환

  → as.Date로 변환, 표준형식은 바로 변환되지만, 임의 형식은 Format을 지정해주어야 함.

 

⑤ 날짜를 문자열로 변환

+ Recent posts