R 프로그래밍 2021. 6. 2. 23:44

# 대부분 인스톨이 되어 있겠지만 혹시 안되시는 분들을 위해 패키지 인스톨부터시작 하겠습니다
# 우선은 intall.packages를 활용해 ggplot2를 인스톨 받으신후 라이브러리를 통해 ggplot2를 적용 시키시면 됩니다.
ggplot2 
install.packages("ggplot2")
library(ggplot2)
install.packages("gridExtra")
library(gridExtra)
#grid.arrange(p1, p2, ncol=2)
##########+############################################################################
#저희가 활용할 객체는 ggplot의 객체인 diamonds입니다.
#View를 활용해서 정보를 보도록 하겠습니다.
View(diamonds)
#diamonds에는 질적자료와 양적자료가 있는데, 질적자료 3가지를 찾아주시기 바랍니다.
#혹시 질적자료와 양적 자료가 헷갈리시면 str을 이용해 편하게 구분 하실 수 있습니다.
str(diamonds)
# diamiond의 자료구성입니다.
# 질적자료는 숫자로 표시될 수 없는 자료를 가르킴으로 fctor형인 cut, clarity, color가 있습니다.
# 그외의 자료들은 양적자료로 자료 자체가 숫자로 표현되어 있다. 여기서는 carat,depth,table,price 등이 있습니다.

# 앞에서 배웠던 것을 토대로 cut에 대해 그래프로 표현해 보시기 바랍니다.
# 힌트는 cut은 질적자료이며, x축만 제공하기에 막대형식의 그래프를 사용하시면 됩니다.
# 안되거나 기억이 안나시는 부분은 손들어주시면 보조강사분들이 가겠습니다.

#qplot과 ggplot으로 작성하신 분들이 있을텐데요
#qpolt과 ggplot의 차이는 무엇일까요? 츄파춥스준다.
#qplot은(quick plot)으로 데이터와 표현방식을 함께 기입하여 코드의 길이가 매우 짧으며 간단한 반면에
#ggplot은 데이터 입력후 "+"를 사용해 그래프 형식을 정해주어야합니다. 불편해 보이지만 +를 사용함으로 추가가 용이합니다.
#ggplot이 더 복잡한 작업을 할때 시각화부분에 더 강력하다고 할 수 있습니다.
#말 그대로 qplot은 빠르게 plot 할 때 (그래프를 그릴 때) 사용하는 것이고
#ggplot(grammer of graphic)은 문법대로 더 상세하게 구현할 때 사용한다고 한다


qplot(cut,data=diamonds) 
qplot(cut,data=diamonds,geom="bar",xlab="cut",ylab="count") #geom의 default값이 "bar", ylab으로 이름설정

ggplot(data=diamonds, aes(x=cut))+geom_bar() #이와 같이 작성은 가능하지만


g <- ggplot(data=diamonds, aes(x=cut)) #어떤 데이터를 사용할 것인지만 지정된 상태
g + geom_bar()   #변수에 데이터를 넣은 후 출력형식을 +로  연결해주시면 됩니다.
#이와같이 지속적으로 추가시킬수 있습니다.
# x축만 제공됨으로 y축이 필요한 함수는 추가할 수 없습니다.

# cut의 막대그래프 - 질적 변수인 cut을 기준으로 도수의 크기를 비교한 막대그래프


###########################################################################################


# 방금전에 cut은 질적자료였죠 그럼 carat은 무슨 자료일까요?

# 잘적자료는 바를 사용한다면 양적자료는 무엇을 사용할까요?

# 막대그래프와 히스토그램의 차이가 무엇인가요?

# carat을 그래프로 표현해 보시기 바랍니다.

g <- ggplot(data=diamonds, aes(x=carat))

g + geom_histogram(binwidth = 1 )
g + geom_histogram(binwidth = 0.1 )
g + geom_histogram(binwidth = 0.05 )
# 앞의 히스토그램의 계급의 수를 변경하는 등 작성자의 주관적인 판단에 좌우되어 해석이 좌우된다.

##############################################################################################
#다음은 line을 실습해 보겠습니다.
#line은 질적변수를 사용하지 않고 X축과 Y축 변수가 필요합니다.
#x축은 케럿 y축은 프라이스로 line을 만들어보세요

g <- ggplot(data=diamonds, aes(x=carat,y=price))
g+geom_line()
#x,y값만으로 했을때 그래프가 변동이 심하죠 이거는 다른 변동요인 있을 수 있다는걸 뜻합니다.
#컬러변수를 넣어서 확인해볼까요"?
g+geom_line(aes(colour=color))

#캐럿에 따라 가격 상승, 색에따라서 가격 상승
# line여기서 마치고 이어서 point부터는 이용희학생이 진행하겠습니다.






















#############################################
# 이어서 발표하겠습니다.(지옴 지오메틱)
# 포인트 그래프는 x축과 y축을 설정한 뒤 geom_point()를 추가하면 그려집니다.
# 케럿과 프라이스 변수로 포인트 그래프를 만들어보세요.
ggplot(data=diamonds, aes(x=carat,y=price)) + 
  geom_point()
# 수많은 점이 찍힌것을 볼 수 있으시죠?
# 이제 이 그래프에 깨끗한 정도의 변수를 넣어 색을 변경해보겠습니다.
# 변수에 따라 point를 다르게 표현하고 싶다면 aes에서 설정해주면 됩니다.
# aes에 컬러는 클라리티를 넣어 확인해봅시다.
ggplot(data=diamonds, aes(x=carat,y=price, colour=clarity)) + 
  geom_point()
# 클라리티 변수에 따라 포인트들의 색이 변경되었음을 보실 수 있으실겁니다.
# 그래프를 보시면 노란색 점, 즉 결점이 적은 다이아가 위쪽으로 많이 분포해있고,
# 검은색 점이 아래쪽에 많이 분포되어있음을 알 수 있습니다.
# 간단하게 해석해보면 다이아몬드에 결점이 적을수록
# 가격이 높으며, 무게가 큰 것을 찾기 힘들어진다는 것을 알 수 있습니다.

# 이제 추세선을 그려보겠습니다.
# 앞에 있었던 포인트나 라인같이 무수한 데이터들로 이루어진 산포도로는
# 그 경향을 읽어내기가 어렵습니다.
# 이런 경우, 추세선을 통해 그 경향을 읽을 수 있습니다.
# 추세선은 geom=smooth를 통해 표현할 수 있습니다.
# 앞에 그렸던 포인트 그래프에 스무스를 추가하여 보세요.
ggplot(data=diamonds, aes(x=carat,y=price, colour=clarity)) + 
  geom_point()+
  geom_smooth()
# (만약 포인트에 aes를 넣어 만든사람은 한개의 회귀선만 나타난다. ase(colour=clarity)라는
# 옵션은 디폴트로 주어진 것이 아니라 추가적인 레이어에서 새롭게 설정된 값이라서)
# 그래프를 보시면 clarity에 따른 각각의 회귀선이 나타남을 알 수 있습니다.
# 이는 맨 처음 레이어에서 colour=clarity옵션까지 디폴트로 적용되었기 때문입니다.

# 이제 박스플롯을 그려보겠습니다.

# boxplot은 중앙값, 최대값, 최솟값, 사분위를 사용하여 자료의 측정값들이 어떤 모양
# 으로 분포되어 있는지 알려줍니다.
# 클라리티와 케럿에 대한 상자그림을 그려보세요.
ggplot(data=diamonds, aes(x=clarity,y=carat)) + 
  geom_boxplot()
# boxplot을 통해서 이상치나 자료의 대칭성, 산포도, 중앙값등을 한 눈에 볼 수 있습니다.
# boxplot의 색과 크기는 fill,color,width 지정을 통해 바꾸어 줄 수 있습니다.
ggplot(data=diamonds, aes(x=clarity,y=carat)) + 
  geom_boxplot(fill='slategrey',color='darkslategrey',width=0.3)
# (이상치를 없애려면 oulier.shape를 NA로 지정해주시면 됩니다.)
# 중앙값 이외에도 평균을 알고 싶다면 stat_summary를 통해 평균을 추가해줄 수 있습니다.
ggplot(data=diamonds, aes(x=clarity,y=carat)) + 
  geom_boxplot()+
  # fun.y 인자를 설정해주면 x값에 대응하는 y값을 구할 수 있습니다.
  # stat_summary 함수에서 fun.y 인자에 mean을 입력해주면 그래프에 평균값이 나타나게 됩니다.
  stat_summary(fun.y="mean", geom="point", shape=22, size=3, fill="blue")

# 박스플롯에 분포의 형태를 보다 구체적으로 표현하는 방법으로는 violin plot이 있습니다.
# 클라리티와 프라이스의 바이올린 플롯을 그려보세요
ggplot(data=diamonds, aes(x=clarity,y=price)) +
  geom_violin()
# 바이올린 그래프를 보면 분포가 옆으로 나열되기 때문에 아까 봤던 포인트처럼 데이터가
# 무수히 많을 때 분포를 비교하기 힘들었던 자료도 쉽게 비교할 수 있습니다.

# 이렇게 기초 통계와 ggplot2의 그래프들 중 7가지 그래프를 알아봤습니다.

posted by 스노(Snow)
:
R 프로그래밍 2019. 11. 6. 13:42

네이버나 다음 등의 포털사이트에서 2019년 자동차 데이터를 수집하였습니다.

네이버 자동차 데이터 (https://auto.naver.com/car/lineup.nhn?yearsId=130559)

 

변수로는 모델, 가격, 연비(도시),연비(고속도로), 연료타입[가솔린, 디젤, 하이브리드], 제조사, 모델[세단,SUV], 차종, 국산/수입, 마력, 차중량을 사용하였습니다.

 

데이터는 총 303개 모았습니다.

 

수치형 변수들의 산점도

수치형 변수들의 상관계수

자동차 타입별 레이더 차트

비지도학습으로 군집을 6개로 나눈 그래프  (K-means 클러스터링)

Hierarchical 클러스터링(계층화) 결과, 그려진 모양에 맞춰서 빨간색으로 클러스터를 표현했습니다. 분류 시 2개 혹은 3개로 분류하는 것이 좋아보입니다.

 

R 코드와 데이터는 (https://github.com/sealwh/cars)에서 다운받으실 수 있습니다.

posted by 스노(Snow)
:
R 프로그래밍 2019. 11. 6. 11:05

R을 이용하여 Diamond의 데이터로 기하학적 객체들(점, 선, 막대 등)에 미적 특성(색상, 모양, 크기)를 매핑하여 시각적으로 분석합니다.

 

ggplot2

ggplot2는 다음과 같은 다섯 가지 사항으로 그림을 그립니다.

 

data

- 그래프를 그리려는 데이터로 구조는 데이터 프레임이고 데이터의 기록 방식은 long-farmat에 기반한 tidy data여야 합니다.

(aesthetic) Mapping

- 데이터의 요소와 그래프의 요소를 대응시키는 과정으로 그리고싶은 그래프가 필수적으로 요구하는 대응 요소를 만족시키면 됩니다. 하나의 변수가 여러가지 시각적 요소에 대응할 수 있습니다.

geometric object

- 어떤 형태의 그래프를 그릴지 지정해야 합니다. ggplot2에서는 이것을 geometric object라고 하며, 줄여서 geom이라고 합니다.

position

- 그래프의 형태를 지정했다면 그래프에서 각 도형이 어떤 식으로 배치될 지를 결정할 수 있습니다. 이러한 옵션을 position이라고 합니다. 막대그래프나 선 그래프라면 누적 그래프를 그리거나 할 때 position 옵션을 조정해 형태를 변경할 수 있습니다.

statistical transformation

- 값이 어떻게 그래프에 반영되는지 결정하는 옵션입니다. 줄여서 stat 이라고 합니다. 히스토그램과 같이 구간 내에 존재하는 값의 개수를 세거나 밀도를 계산하는 등, 주어진 값을 변형시켜서 그래프에 반영시킬 때 사용합니다.

 

자료 시각화의 핵심

plot = data + aesthetics + geometry

 

data : 무엇을 시각화할 것인가?

geom : 무엇으로 시각화할 것인가? 예)점, 선, 막대 등

aesthetics : 어떤 시각적 특성(visual attributes)를 사용할 것인가? 예) 위치(x,y), 크기(size), 모양(shape), 색깔(col) 등

 

ggplot2 기본 문법

1. 축을 그립니다.  (x축,y축을 정해줍니다.)

ggplot(데이터명, aes(x=변수1,y=변수2))

 

2. 그래프를 그립니다.

geom_bar()            막대 도표를 그립니다.

geom_histogram()   히스토그램을 그립니다.

geom_boxplot()      박스 플롯을 그립니다.

geom_line()            선 그래프를 그립니다.

geom_point()         포인트 그래프를 그립니다.

geom_smooth()      추세선을 그립니다.

geom_violin()         바이올린 박스 플롯을 그립니다.

 

3. 기타 옵션을 수정하여, 그래프를 정교화 합니다.

labs()               범례 제목 수정

ggtitle()            제목 수정

xlabs(), vlabs()    x축,y축 이름 수정

 

diamonds

우선은 ggplot2부터 인스톨 하겠습니다.

 

install.packages("ggplot2")

library(ggplot2)

 

저희가 활용할 객체는 ggplot의 diamonds입니다.

View를 활용하여 정보를 얻을 수 있습니다.

 

View(diamonds)

 

질적자료인지 양적 자료인지 헷갈리시면 str을 이용해 편하게 구분 하실 수 있습니다.

 

str(diamonds)

 

diamonds의 자료구성입니다.

질적자료는 숫자로 표시될 수 없는 자료를 가르킴으로 factor형인 cut, clarity, color가 있습니다.

 

어떤 데이터를 사용할 것인지 지정하시려면 다음과 같이 작성하시면 됩니다.

g <- ggplot(data=diamonds, aes(x=cut))

 

그 후 변수에 데이터를 넣은 후 출력형식을 +로 연결해주시면 됩니다.

g + geom_bar()

 

위에 것을 실행하시면 cut의 막대그래프가 나올 것입니다.

질적 변수인 cut을 기준으로 도수의 크기를 비교한 막대그래프입니다.

 

 

양적자료인 carat은 막대그래프가 아닌 히스토그램을 사용하시면 됩니다.

 

g <- ggplot(data=diamonds, aes(x=carat))

g + geom_histogram(binwidth = 1 )
g + geom_histogram(binwidth = 0.1 ) 

 

히스토그램의 계급수를 변경하는 등 작성자의 주관적인 판단에 해석이 좌우 될 수 있습니다.

 

다음은 line을 실습해 보겠습니다.

x축은 carat, y축은 price로 line을 만들어 보겠습니다.

g <- ggplot(data=diamonds, aes(x=carat,y=price))
g+geom_line()

그래프가 변동이 변동이 심하고 알아보기도 힘든 것을 확인하실 수 있습니다.

한번 color 변수를 넣어보겠습니다.

 

g+geom_line(aes(colour=color))

 

carat의 크기와 색에 따라서 가격이 상승된다는 것을 알 수 있습니다.

 

이번에는 포인트 그래프를 만들어 보겠습니다. 변수로는 carat과 price, clarity를 비교해보겠습니다.

 

ggplot(data=diamonds, aes(x=carat,y=price, colour=clarity)) + 
    geom_point()

그래프를 보시면 노란색 점이 위쪽으로 많이 분포되어있고, 검은색 점이 아래쪽에 많이 분포되어있음을

알 수 있습니다. 간단하게 해석해보면 다이아몬드에 결점이 적을수록 가격이 높으며, 무게가 큰 것은 찾기

힘들다는 것을 알 수 있습니다.

 

이번에는 위에 있는 포인트그래프에 추세선을 그려보겠습니다.

 

ggplot(data=diamonds, aes(x=carat,y=price, colour=clarity)) + 
     geom_point() +
     geom_smooth()

위에 있었던 포인트나 라인그래프같이 무수한 데이터들로 이루어진 산포도로는 그 경향을 정확히 읽어내기가 어렵습니다. 이런 경우, 추세선을 통하여 그 경향을 좀 더 편하게 읽을 수 있습니다.

posted by 스노(Snow)
:
R 프로그래밍 2019. 11. 6. 09:56

유튜브와 관련된 논문들을 조사하여 유튜브 이용자의 만족도에 어떠한 요인들이 영향을 미치는지 조사하였습니다.

그렇게 얻어진 요인들을 가지고 설문지를 작성한 후 조사하였습니다.

 

목적

설문조사 후 분석하는 학과 과제를 위해 시작하였으며, 이왕이면 사람들이 많이 이용하는 것을 주제로 하고 싶었습니다.

 

가설

1. 유튜브 미디어 특성 인식은 이용자의 몰입(즐거움/주의집중/시간왜곡) 수준에 영향을 미칠 것이다.

 - 1 : 유튜브의 상호작용 특성 인식은 이용자의 몰입 수준에 영향을 미칠 것이다.

 - 2 : 유튜브의 즉시연결성 특성 인식은 이용자의 몰입 수준에 영향을 미칠 것이다.

 - 3 : 유튜브의 이용편리성 특성 인식은 이용자의 몰입 수준에 영향을 미칠 것이다.

2. 유튜브 콘텐츠 특성 인식은 이용자의 몰입 수준에 영향을 미칠 것이다.

 - 1 : 유튜브 콘텐츠 인식의 다양성은 이용자의 몰입 수준에 영향을 미칠 것이다.

 - 2 : 유튜브 콘텐츠 인식의 오락성은 이용자의 몰입 수준에 영향을 미칠 것이다.

 - 3 : 유튜브 콘텐츠 인식의 신뢰성은 이용자의 몰입 수준에 영향을 미칠 것이다.

3. 유튜브 콘텐츠 추천 서비스에 대한 특성 인식은 이용자의 몰입 수준에 영향을 미칠 것이다.

 - 1 : 유튜브 콘텐츠 추천 서비스의 정확성은 이용자의 몰입 수준에 영향을 미칠 것이다.

 - 2 : 유튜브 콘텐츠 추천 서비스의 새로움은 이용자의 몰입 수준에 영향을 미칠 것이다.

설문 응답자 특성

설문에 참여한 응답자들은 남성은 49명, 여성은 28명이었습니다.

 

연구 가설을 분석하기에 앞서 연구에서 사용한 측정 척도의 신뢰도를 살펴보기 위해 크론바흐 알파값을 검증하였습니다. 다음의 표와 같이 신뢰도 계수가 .60이상으로 나타나 분석을 위한 기준치에 적합한 것으로 판단되었습니다.

 

 

몰입의 하위차원 중 즐거움에 영향을 미치는 요인을 확인했습니다. 그 결과 콘텐츠 특성과 새로운 추천 서비스가 즐저움에 유의미한 영향을 미치는 것으로 확인되었으며, 그 중에서도 오락성이 가장 큰 영향을 미치는 변인으로 드러났습니다. 해당 회귀분석의 수정된 R제곱 값은 0.5831로 만족할만한 설명력을 가지고 있다고 판단되었습니다.

몰입의 하위차원 중 주의집중에 영향을 미치는 요인을 확인하였습니다. 그 결과 콘텐츠의 특성과 개인성향의 감각추구성향이 유의미한 영향을 끼친다는 것을 확인하였습니다. 해당 회귀분석은 수정된 R제곱 값은 0.3726으로 만족할만한 설명력을 가지고 있다고 판단하였습니다.

몰입의 하위차원 중 시간왜곡에 영향을 미치는 요인을 확인했습니다. 그 결과 개인성향의 감각추구성향이 유의미한 영향을 끼치는 것으로 확인하였으며, 해당 회귀분석의 수정된 R제곱 값이 0.3326으로 만족할만한 설명력을 가지고 있다고 판단하였습니다.

몰입의 세 가지 하위 차원이 이용자 만족에 미치는 영향을 회귀분석을 통하여 검증하였습니다.

그 결과 즐거움이 이용자 만족에 유의미한 영향을 미치고 있음을 확인했습니다.

반면에 주의집중과 시간왜곡은 만족에 직접적인 영향을 미치지 못하는 것으로 나타났습니다.

만족도에 영향을 가장 많이 끼치는 오락성의 점수와 시간과 비교해본 결과, '거의 그렇지 않다'가 평균 20분, '보통이다'가 평균 63분, '그렇다'가 평균 93분, '자주 그렇다'가 평균 125분, '매우 그렇다'가 평균 148분으로, 오락성이 높을수록 유튜브를 더 오래본다는 조사결과를 얻을 수 있었습니다.

 

 

 

 

 

참고 문헌 :

https://www.dbpia.co.kr/journal/articleDetail?nodeId=NODE07588565&language=ko_KR

 

유튜브 이용자의 몰입경험과 만족에 영향을 미치는 요인 연구

본 논문은 최근 급성장하고 있는 온라인 영상 서비스의 인지된 특성이 이용자의 긍정적인 몰입 경험과 만족도에 어떠한 영향을 미치는 지 알아보고자한다. 연구를 위해 평소 유튜브를 이용하는 20-30대 응답자 289명을 대상으로 설문을 실시하였고, 이후 위계적 회귀분석을 사용해 변인 간 관계를 분석하였다. 그 결과 유튜브의 상호작용 특성과 추천 서비스의 새로움,

www.dbpia.co.kr

이강유, 성동규. (2018). 유튜브 이용자의 몰입경험과 만족에 영향을 미치는 요인 연구. 한국콘텐츠학회논문지, 18(12), 660-675.

posted by 스노(Snow)
:
R 프로그래밍 2019. 10. 6. 00:52

mean(x) # x의 평균을 계산합니다.

           # na.rm=TRUE를 추가하면 결측값을 제외하고 계산합니다.

var(x) # x의 분산, n-1로 나누는 값입니다.

sd(x) # x의 표준편차, sqrt(var(x))의 값입니다.   sqrt() : 제곱근

median(x) # x의 중앙값입니다.

range(x); # x의 최소값과 최대값입니다.

max(x) # x의 최대값입니다.

min(x) # x의 최소값입니다.

IQR(x) # 사분위편차입니다. (제3사분위수 - 제1사분위수)

sum(x) # x의 합계입니다.

quantile(x) # x의 분위수를 구합니다. 기본은 최대,최소,사분위수입니다.

summary(x) # x의 요약통계량입니다.

cov(x,y) # x와 y의 공분산입니다.

 

posted by 스노(Snow)
:
R 프로그래밍 2019. 10. 6. 00:41

산술연산자

+ 더하기  - 빼기  * 곱하기  / 나누기
^ 거듭제곱  ** 거듭제곱
%% 나머지  %/% 몫

관계연산자(비교연산자)

<,<=,>,>=   양쪽 값 비교

== 같음  != 같지 않음

논리연산자

|  'OR' 연산자 - 한개만 TRUE여도 결과값이 TRUE로 나옵니다.

& 'AND' 연산자 - 모든 조건이 TRUE일때만 결과값이 TRUE로 나옵니다.

! 'NOT' 연산자 - 반대 논리값이 결과로 나옵니다.

posted by 스노(Snow)
:
R 프로그래밍 2019. 10. 6. 00:01

rm(x) # x변수를 삭제합니다.
ls() # 변수목록을 출력합니다. 
rm(list=ls()) #모든 변수를 삭제합니다. 
getwd() #작업디렉토리의 주소를 출력합니다. 
setwd("D:/R") #작업디렉토리를 변경합니다. 
sink('nomal.txt') #결과값을 작업디렉토리에 텍스트로 저장합니다. 
sink() #저장을 종료합니다. 
# jpeg('파일이름,jpeg'), pdf('파일이름.pdf') 도 있습니다.
# 종료할때는 jpeg(),pdf() 을 실행하시면 됩니다. 
q() #r프로그램을 종료합니다. 
save.image('nomal.RData') #작업디렉토리에 작업공간을 저장합니다.
#변수들을 RData로 저장합니다.
#load('주소') 저장되어있는 RData를 불러옵니다.
savehistory('nomal.Rhistory') # 작업디렉토리에 Rhistory로 저장합니다. # 여태껏 실행시켜온것들을 저장합니다.
#loadhistory('주소') 저장되어있는 Rhistory를 불러옵니다.
source('11.txt', echo=T)  # txt에 저장되어있는 실행문을 실행시킵니다.
print(x) # 명령문의 값을 출력합니다.
example(list) # 함수의 예제을 보여줍니다.
?list #함수의 설명을 보여줍니다.
table(z)#빈도를 table의 형태로보여줍니다.
LETTERS #영문자(대문자)
letters #영문자(소문자)
class(f.y) #변수의 속성을 보여줍니다.
mode(f.y) #변수의 유형을 보여줍니다.
attach(d.f) #특정 데이터 프레임을 활성화 시킵니다.
#데이터 프레임이 활성화되면 데이터프레임안에있는 변수명들을 실제변수처럼사용가능합니다.
detach(d.f) #활성화를 종료합니다.

'R 프로그래밍' 카테고리의 다른 글

[R프로그래밍] 통계관련함수  (0) 2019.10.06
[R프로그래밍] 연산자  (0) 2019.10.06
[R프로그래밍] 자료의 종류  (0) 2019.10.05
[R프로그래밍] R 기초 문법  (0) 2019.10.05
[R프로그래밍] R Studio 사용법  (0) 2019.10.05
posted by 스노(Snow)
:
R 프로그래밍 2019. 10. 5. 02:23

변수에 자료 넣기

x <- 1

x = 1

- x라는 이름의 변수에 1이라는 자료가 들어갑니다.

x변수의 내용 보기

print(x)

x

데이터 타입[벡터]

- 동일한 유형의 데이터를 연속적으로 담을 수 있는 그릇을 '벡터'라고 합니다.

- c()함수를 사용하여 만들 수 있습니다.

 

x <- c(1,2,3,4,5)                # 숫자형 벡터

y <- c("강원","경북","경기") # 문자형 벡터

z <- c(TRUE,FALSE,T,F)       # 논리형 벡터

논리형 벡터는 숫자처럼 인식됩니다. TRUE=1, FALSE=0

 

w <- c(1,"강원",F) # 한 벡터에 숫자와 문자가 함께 포함되어 있다면 벡터의 데이터들은 모두 문자형으로 변환됩니다.

데이터 타입[배열]

- 한 개이상의 백터로 구성되어 있으며, 동일한 데이터 유형을 갖습니다.

- array()함수를 사용하여 만듭니다.

데이터 타입[행렬]

- 행과 열로 구성되는 2차원 배열을 matrix라고 합니다.

- matrix() 함수를 사용하여 만듭니다.

- byrow 옵션으로 행부터 원소를 채울수 있습니다.

- cbind는 옆으로 데이터를 결합하며, rbind는 아래로 데이터를 결합해줍니다.

데이터 타입[데이터 프레임]

- 데이터 프레임은 여러가지 벡터들을 하나로 묶어줍니다.

- 단, 길이가 모두 같아야 합니다.

- 각 속성(벡터)들의 데이터 유형(숫자, 문자, 논리)은 서로 다를 수 있습니다.

- data.frame()함수로 만듭니다.

데이터 타입[리스트]

- 리스트는 모든 형태의 자료들을 하나로 묶어줍니다.

- list()함수를 사용하여 만듭니다.

 

posted by 스노(Snow)
: