data analysis & visualization

R 기본 플롯 사용하기

R2019. 3. 19. 02:35

기본 플롯 옵션

par()


fig=c(x1, x2, y1, y2) x1에서 x2까지 y1에서 y2까지 그림을 입력

pty=“s”or“m” mar=c(5.1,4.1,4.1,2.1) 그래픽 바깥 여백 new=T는 겹처서 그리기 mfrow=c(행의수,열의수) 한 그

래픽에 여러그래프그리기


split.screen(fig=c(,)) 행의 수와 열의수로 쪼갬

split.screen(fig=c(1,2), screen=2) screen에 해당하는 칸을 행과 열의 수로 쪼갬

screen(4) ;hist(cars$dist) screen(4)에 그래픽을 넣음

erase.screen(n=1);

screen(1) close.screen(all=TRUE)


layout(mat =matrix(c(1,1,2,3),nrow=2,byrow=T)) ex)

1

2

3

모양 그래픽 출력

 

산점도

plot(x, y, type=,main=\“c\“,sub=,xlab=,xlim=,axes=,bty=,col=,pch=,lty=,lwd=,cex=,bg=,fg=“색깔”)

axes=축의 유무 las=축의 눈금값 방향 fg=축의 색깔,bty=축 종류 o, I, 7, c,u, ]가 존재,mar=1~4순으로 여분 설정 tcl=0.3 : 축이 안쪽을가리키는지

xaxt='n' x축 지우기

pch=점의 종류(1~25), lty= 선의 종류(1~6), lwd=선의 두깨, bg=배경색,cex= 크기

col.xlab, cex.main 등 사용가능


추가 점, 텍스트, , 직선

points(x,y,내용)

text(x,y,내용,srt=각도) srt는 텍스트의 회전각도

lines(x,y)

abline(a=,b=,v=,h=) bx+a의 직선을 그음. v는 수직, h는 수평선

arrows(x1,y1,x2,y2,angle=, length=,code=) 시점과 종점을 긋는 직선 긋기 code(0~2)는 직선의 종류 angle은 화살표의 각


사각형(rectangle) 생성

rect(왼쪽밑의x좌표, 왼쪽 밑의 y좌표, 오른쪽위의 x좌표, 오른쪽 위의 y좌표, border=, density=)

border은 테두리선 색깔, density는 사선의 밀도

box()는 테두리

order 자료의 첨자를 정렬 ex)data<-data[order(data[,2]),]


범례(legned)

legend(위치 ,legend=c(“”,“”),fill=1:2, density=)

위치 bottom, left, right ,top, center의 조합 혹은 좌표 사용가능 fill은 채우기색

axis(1에서4 ,at=축의 시작:, labels=축의 값, line=, outer=, col.axis=축의 값의 색)

1:4는 아래 왼 위 오른 순 line은 축과 떨어진 거리, outer=T은 맨 바깥 태두리


격자눈금선

grid(); grid(가로의 개수, 세로의 개수)


다각형

polygon(x좌표의 집합, y좌표의 집합)

 

rug(기준변수, side=1~4중하나, ticksize=) ticksize는 높이 rug는 데이터들을 하나의 좌표축에 표시하는 방법

chull : 가장 바깥쪽 테두리 점에 해당하는 첨자를 구해줌

 

locator(n,type=“p,l,o 중 하나”) : n개의 좌표를 그래픽에서 찾아줌

identify(x, y, output, pos=T, n=,plot=T,offset=n,atpen=T ,tolerance=n)

: 좌표를 찍으면 거기에 해당하는 output 값을 찾아줌

outputxy값 디폴트는 첨자,pos=T : 포인트 값 반환 offset은 출력되는 숫자와 점사이의 거리

atpen=T 찍은 점에 바로 output값을 줌, tolerance= 인식 거리


곡선

curve(표현식)


히스토그램

hist(단일변수,border=“색깔”)


부분집합 

ex) subset(data, var==element1| var!=elment2)


저장

png(filename="plot1.png", width=480, height=480)

postscript(file="plot1.eps", horizontal = FALSE, onefile=FALSE, height=30, width=50)

pdf(file="plot1.pdf")

dev.list() 실행중인 리스트 확인 dev.cur() 활성화 리스트 확인 dev.set(2) 2번 활성화 dev.copy(which=3)

활성화 된 걸 3번에 복사 dev.off() 장치종료


원근법(perspective)

z<-outer(x,y,f) x,y값을 바꿔가며 f에 넣음 image(z) ;contour(z) 등고선

persp(x,y,z,theta=0,phi=0,expand=) 주면좌표계

library(rgl)

plot3d(x,y,z,col=ifelse(z>0.5,1,2))

persp3d(x,y,z,add=T, col="lightblue", aspect=c(1,1,0.5))

aspect는 가로세로비,add=축 여부(F 안됨)

'R' 카테고리의 다른 글

leaflet 지도그리기  (0) 2019.04.09
객체지향언어란  (0) 2019.04.08
이미지 벡터화해서 저장하기  (0) 2019.03.21
정규표현식(R)  (3) 2019.03.19
R 개인 패키지만들기에서 간단한 사용법 까지(git을 활용)  (0) 2019.03.16

Git 다운로드


https://git-scm.com/download/win


git이 자동 다운로드 된다.


git을 설치한 뒤  실행한다.


git config --global user.name '유저이름'


git config --global user.email '이메일@~'


git의 복사는 ctrl+insert 붙여넣기는 ctrl+insert 이다.




R 패키지 만들기

그런다음 https://github.com/에 가입한 뒤 New repository를 생성하자.


비공개는 유료라고 하는데 학생은 무료로 가입 가능하다고 하니 참고하자.


Repository name에 만드려는 패키지의 이름을 적자.


create repository 클릭 



https 가 적혀 있을텐데 조금있다 사용할 예정이다.




이제 R 스튜디오를 열자.


file>New project 클릭


New directory>R Packge>Package name에 Repository name에서 입력한 패키지 이름 입력>

Create project as subdirectory of 본인 컴퓨터에 저장될 경로 지정



tools에서 global options의 git/SVN의 create RSA Key 클릭>Public key를 복사>

 View public key 의 내용 복사> 본인 github 홈페이지에서 오른쪽 상단에 종, +, 옆에 있는 네모에서 설정을 클릭. ssh 키 >

새로운 ssh 키 등록


생성된 프로젝트를 닫거나 스튜디오를 닫은 뒤 방금 저장된 경로로 이동하여 이름을 잠시 바꿔준다.


 package라고 저장했으면 폴더명을 package_로 변경


다시 R 스튜디오에서 file>New project클릭


 version control 클릭 git 클릭


 아까 github 홈페이지에서 생성한 https를 repository URL에 붙여넣자. 


그리고 경로는 아까와 같은 경로, project directory name에는 앞에서와 동일한 생성할 패키지명을 입력


다시 패키지 생성 경로로 들어가 package_로 저장한 폴더안에 파일들을 복사 한다음 package 폴더내에 붙여넣기 한 뒤 덮어쓰기한다.


이제 package_폴더는 제거하여도 된다.


.gitignore를 메모장에서 열든 R스튜디오에서 열든 연다.


.Rproj.user

.Rhistory

.RData

.Ruserdata


라고 입력된 내용을 


.Rproj.user

.Rhistory

.RData

.Ruserdata 패키지이름.Rproj

.gitignore 


라고 변경 후 저장.


.Rbuildignore를 열고 

^.*\.Rproj$

^\.Rproj\.user$


라 입력된 내용을


^.*\.Rproj$

^\.Rproj\.user$

.gitignore

README.md

.Rhistory


라고 변경 후 저장.


R 스튜디오 오른쪽에 Push를 클릭하면 Review Changes라는 창이 뜨는데

 ctrl+A >space bar 해서 모두 체크해준 뒤 commit message에 commit을 입력해준다. 


이제 깃허브 비밀번호를 입력해준다.


전송창에 전송이 끝나면 package가 만들어진다.


패키지의 사용


library(roxygen2)

library(devtools)

install_github('깃허브아이디/패키지')

library(패키지명)

하면 패키지 사용이 가능하다.


use_data(exdata, internal = F,overwrite=T)를 사용해서 패키지에 데이터를 저장 할 수도 있으며 


아래 형식으로 스크립트를 저장해 패키지 내에 함수를 저장할 수 있다.

#' 제목

#'

#' @param 

#' @return 

#' @examples

#' @export

함수이름<-function()


물론 저장 후 아래 코드를 실행하고 push를 해야 가능하며 한글이 있으면 오류가 나는 것 같다.

devtools::document()


'R' 카테고리의 다른 글

leaflet 지도그리기  (0) 2019.04.09
객체지향언어란  (0) 2019.04.08
이미지 벡터화해서 저장하기  (0) 2019.03.21
정규표현식(R)  (3) 2019.03.19
R 기본 플롯 사용하기  (0) 2019.03.19

RCurl, devtools 설치가 안될 때 

sudo apt-get install libcurl4-openssl-dev libssl-dev

apt-get remove libcurl4-nss-dev


gdal 설치
sudo apt-get install gdal-bin proj-bin libgdal-dev libproj-dev

plotly 패키지 R-studio-server 에서 설치되지 않을 때
sudo apt-get install r-cran-plotly
R에서 dplyr package install

tidyverse 패키지 설치 안될 때
sudo apt-get install r-cran-curl r-cran-openssl r-cran-xml2
자바다운로드

sudo add-apt-repository –y ppa:webupd8team/java

sudo apt-get update

sudo apt-get –y install oracle-java8-installer

sudo apt-get –y install oracle-java8-set-default

안되면 밑에꺼 실행

sudo apt install default-jre

java -version


샤이니 서버 64bit 설치 
 sudo apt-get install gdebi-core
 wget https://download3.rstudio.org/ubuntu-14.04/x86_64/shiny-server-1.5.9.923-amd64.deb
 sudo gdebi shiny-server-1.5.9.923-amd64.deb 

rvest 패키지 설치가 안될 때

sudo add-apt-repository 'deb https://mirrors.nic.cz/R/bin/linux/ubuntu trusty/'

sudo apt-get update

sudo apt-get install r-base-dev

sudo apt-get install libxml2-dev

sudo apt-get install libssl-dev

sudo -i Rsudo -i rstudio

pkg-config rvest


Rstudio 서버 계정 추가


sudo useradd –m 유저명

sudo adduser –m 유저명

sudo passwd 유저명

sudo chmod 777 –R 경로


예제

sudo useradd –m share1

sudo adduser –m share1

sudo passwd share1

sudo chmod 777 –R /home/share1/




R -Studio server 설치 


R다운로드

sudo apt-get install r-base


R-Studio 설치

sudo apt-get install gdebi-core

wget https://download2.rstudio.org/rstudio-server-1.1.456-amd64.deb


sudo gdebi rstudio-server-1.1.456-amd64.deb

sudo rstudio-server verify-installation


sudo ufw allow 8787


R shiny server 설치


sudo su -\

-c "R -e \"install.packages('shiny',repos='https://cran.rstudio.com/')\""

sudo su -\

-c "R -e \"install.packages('rmarkdown',repos='https://cran.rstudio.com/')\""


wget https://download3.rstudio.org/ubuntu-14.04/x86_64/shiny-server-1.5.7.907-amd64.deb

sudo gdebi shiny-server-1.5.7.907-amd64.deb


sudo systemctl start shiny-server

sudo systemctl enable shiny-server

sudo ufw allow 3838

sudo chmod 777 -R /opt/shiny-server/samples/


다하고 나서 R의 패키지 인스톨 경로 설정이 필요

내 경우 

.libPaths('/usr/local/lib/R/site-library')


R-studio server 한글문제

sudo apt-get install uim


shiny server 아래의 애러 뜰 때

The application exited during initialization.


sudo vi /etc/shiny-server/shiny-server.conf

실행 후

run_as shiny를 run_as 사용자이름으로 변경


NAS 설치(삼바, mysql)

ubuntu2019. 3. 15. 21:17

sudo apt install mysql-server

sudo mysql_secure_installation

Y->1->(password 입력)->Y->Y->Y->Y->Y


sql설치


sudo mysql

(mysql 환경 내에서)

create database 데이터베이스명 default character set utf8;

show variables like 'validate_password%';

grant all privileges on 데이터베이스명.* to '사용자이름'@'localhost' identified by '비번';

mysql -u webnauts -p

show databases;

use db;

exit;



php설치

sudo apt install php php-mysql

sudo vi /var/www/html/info.php

<?php phpinfo(); ?>  입력 -> :wq입력


인터넷에 localhost/info.php 확인


sudo apt install phpmyadmin


확인 -> 예 -> mysql id 입력

localhost/phpmyadmin 접속


혹시 접속이 안되면 

sudo -H gedit /etc/apache2/apache2.conf

include /etc/phpmyadmin/apache.conf

/etc/init.d/apache2 restart


cmd로 설정

sudo apt-get install samba

sudo vi /ect/samba/smb.conf


내부설정

[data]

path = /home/data/ 등의 경로

writeable        = yes

browseable     = yes

guest ok        = yes

creat mask     = 0777

directory mask= 0777

security mask  = 0777


gui로 설정

sudo apt-get install system-config-samba

sudo touch /etc/libuser.conf

sudo system-config-samba


sudo systemctl restart smbd

sudo systemctl /lib/systemd/systemd-sysv-install enable smbd

sudo systemctl status smbd



nextcloud(miria DB 사용했을 때 nas 설정)

sudo apt-get install samba


sudo apt-get install system-config-samba

sudo touch /etc/libuser.conf

sudo system-config-samba


sudo systemctl restart smbd

sudo systemctl /lib/systemd/systemd-sysv-install enable smbd

sudo systemctl status smbd

NEXTCLOUD 설치

ubuntu2019. 3. 14. 22:26

apache2 설치


sudo apt install apache2  


디렉토리 목록 비활성화


sudo sed -i "s/Options Indexes FollowSymLinks/Options FollowSymLinks/" /etc/apache2/apache2.conf을 통해 디렉토리 목록 비활성화


Apache2 서비스가 항상 서버 부트로 시작되도록 활성화,

sudo systemctl stop apache2.service

sudo systemctl start apache2.service
sudo systemctl enable apache2.service

마리아db 설치

sudo apt install mariadb-server mariadb-client


마리아db 가 항상 서버 부트로 시작되도록 활성화.

sudo systemctl stop mariadb.service

sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service

maria db 설정

sudo mysql_secure_installation

enter -> Y -> 암호입력-> 익명사용자 제거(Y)->루트 로그인 원격 비허용(Y)->Y->Y


maria db 재시작

sudo systemctl restart mariadb.service



PHP 및 관련 모듈 설치

sudo apt-get install software-properties-common

sudo add-apt-repository ppa:ondrej/php


sudo apt update


sudo apt install php7.1 libapache2-mod-php7.1 php7.1-common php7.1-mbstring php7.1-xmlrpc php7.1-soap php7.1-apcu php7.1-smbclient php7.1-ldap php7.1-redis php7.1-gd php7.1-xml php7.1-intl php7.1-json php7.1-imagick php7.1-mysql php7.1-cli php7.1-mcrypt php7.1-ldap php7.1-zip php7.1-curl


#옵션 수정

sudo vi /etc/php/7.1/apache2/php.ini


#적을 내용

memory_limit = 256M(원하는 만큼)

upload_max_filesize = 100M(업로드 파일 최대크기)



sudo mysql -u root -p

(여기서 만든 암호가 데이터베이스 암호 )


CREATE DATABASE 데이터베이스이름;


CREATE USER '유저아이디'@'localhost' IDENTIFIED BY '비밀번호';

GRANT ALL ON 데이터베이스이름.* TO '사용자이름'@'localhost' IDENTIFIED BY '비밀번호' WITH GRANT OPTION;

FLUSH PRIVILEGES;

EXIT;


다른경로로 하고 싶을 때 맨 밑 참조

cd /tmp && wget https://download.nextcloud.com/server/releases/nextcloud-11.0.1.zip

unzip nextcloud-11.0.1.zip

sudo mv nextcloud /var/www/html/nextcloud/


mv는 경로 이동이고 뒤 경로는 넥스트 클라우드로 사용될 우분투의 폴더경로


권한 변경

sudo chown -R www-data:www-data /var/www/html/nextcloud/

권한 할당

sudo chmod -R 755 /var/www/html/nextcloud/


내용 입력

sudo vi /etc/apache2/sites-available/nextcloud.conf


아래 내용 입력

<VirtualHost *:80>

     ServerAdmin admin@example.com

     DocumentRoot /var/www/html/nextcloud/

     ServerName example.com

     ServerAlias www.example.com

  

     Alias /nextcloud "/var/www/html/nextcloud/"


     <Directory /var/www/html/nextcloud/>

        Options +FollowSymlinks

        AllowOverride All

        Require all granted

          <IfModule mod_dav.c>

            Dav off

          </IfModule>

        SetEnv HOME /var/www/html/nextcloud

        SetEnv HTTP_HOME /var/www/html/nextcloud

     </Directory>


     ErrorLog ${APACHE_LOG_DIR}/error.log

     CustomLog ${APACHE_LOG_DIR}/access.log combined


</VirtualHost>



실행

sudo a2ensite nextcloud.conf

sudo a2enmod rewrite

sudo a2enmod headers

sudo a2enmod env

sudo a2enmod dir

sudo a2enmod mime



sudo systemctl restart apache2.service



경로를 다르게 할 때 잘 안되서

/var/www/html


cd /tmp && wget https://download.nextcloud.com/server/releases/nextcloud-11.0.1.zip

unzip nextcloud-11.0.1.zip

sudo mv nextcloud /var/www/html/nextcloud/

를 한 후


unzip nextcloud-11.0.1.zip

sudo mv nextcloud 원하는 경로

를 실행한 후 

위 사진에 데이터 폴더만 수정하였다.