data analysis & visualization

R 스케줄링

R2020. 1. 19. 12:53

특정 기간마다 스크립트 실행

패키지 설치 후 최종적으로 보이는 화면은 아래와 같다.

browse...를 통해 스크립트를 고를 수 있으며, 

 

Rscript repo : location where Rscripts will be copied to schedule + location of logs 를 통해 스케줄 및 로그파일의 저장경로를 성정 가능하다.

 

stop or Delete를 통해 스케줄을 제거 가능하다.

 

스크립트가 한글 지원을 하지 않는 점을 참고하기 바란다.

 

 

 

 

우분투18.04에서는?

sudo apt-get update

sudo apt-get install -y cron

sudo cron start

 

devtools::install_github("bnosac/cronR")
install.packages('miniUI')
install.packages('shiny')
install.packages('shinyFiles')

 

 

참고1, 참고2, 참고3

###연습 문제 4
#for 반복문과 문자열 연산, if 조건문을 사용하여 다음과 같이 인쇄한다.
  #      * 
  #     ***
  #    *****
  #   *******
  #  *********
  # ***********
  #  *********
  #   *******
  #    *****
  #     ***
  #      *

 

 

답안

 



#case 1
 for(t in c(0:4,5:0)){
  k=paste0(rep(' ',11),collapse = '')
  substr(k,6-3,6+3)=paste0(rep('*',seq(1,11,2)[3+1]),collapse = '')
  print(k)
}

#case 2
t=-5:5
for(tt in c(0:4,5:0)){
  k=rep(' ',11)
  k[abs(t)<=tt]='*'
  print(paste0(k,collapse = ''))
}

#case 3

 

t=-5:5;k=0
for(k in c(0:5,4:0))
print(paste0(
  paste0(paste0(rep(' ',abs(t)[1]-k),collapse = ''),paste0(rep('*',k),collapse = ''),collapse = ''),'*',
  paste0(paste0(rep('*',k),collapse = ''),paste0(rep(' ',abs(t)[1]-k),collapse = ''),collapse = '')
))

 

#case 4

 

for(t in -5:5){
  temp=rep(' ',abs(t))
  while(length(temp)<5){
    temp=c(temp,'*')
  }
  print(paste0(c(paste0(temp,collapse =''),'*',paste0(rev(temp),collapse ='')),collapse = ''))
}

#사용한 패키지
import os
from sklearn.linear_model import LinearRegression
import numpy as np
import pandas as pd
from pandas import DataFrame, Series
from itertools import cycle
import statsmodels.api as sm
#경로내 파일 확인
os.listdir("./")

#i변수 내 리스트와 해당 갯수
df[i].value_counts()

#dim
df.shape

#자료 타입
df.dtypes

#결측치 개수 파악

 df.isnull().sum()
 
#변수 내 해당개수가 5개 이하인 자료 추출
for i in df_1.select_dtypes(include='object').columns:
   print(df_1.shape)
   df_1=df_1[df_1[i].isin(df_1[i].value_counts()[df_1[i].value_counts()>5].axes[0].tolist())]   
    
    
#범주형 자료 추출
df_1.select_dtypes(include='object').columns

#자료 더미화
df_1=pd.get_dummies(df_1)

#특정 변수를 제외하고 추출
train_X_2=df_2[df_2.columns.difference([i])]

#상수항 추가
train_X_2=sm.add_constant(train_X_2)

#회귀분석
import statsmodels.api as sm
import statsmodels.formula.api as smf
res_1 = smf.OLS(train_Y_1,train_X_1).fit()
res_1.summary()

 

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

확인

[ggplot2] 시각화 정리

R2019. 12. 8. 00:48

ggplot(data, aes(x축, y축, fill=범주))

geom_bar : 바 그래프

geom_point : 산점도

geom_line : 라인 그래프

geom_count: 버블차트

geom_label: 라벨 입력

geom_errorbar: 에러 바

ggtitle : 그림제목

coord_flip : 가로 막대그래프로 변경

theme(panel.background = element_rect(fill= "transparent"))

theme_classic()

 

facet_grid, facet_wrap : 면 분할

xlim : x축의 범위

ylim : y축의 범위

 

예제1

data(iris)
del=data.table::setDT(iris)[,.(mean=mean(Sepal.Length)),'Species']
del=reshape2::melt(del,'Species')
library(ggplot2)
ggplot(del,aes(Species,value,fill=factor(Species)))+geom_bar(stat='identity')+
  theme_classic()+theme(plot.title=element_text(face='bold',size=40),
                        legend.box.just = 'right',legend.margin = margin(6,6,6,6))+
labs(fill='Species')+ggtitle('뭐냐')

예제2

ggplot(Cars93, aes(x=Weight, y=MPG.highway,colour=MPG.highway)) +
  geom_point() +scale_colour_gradient(low='lightyellow', high='red',limits=c(20,30))+
  facet_grid(Origin ~ Type)+ggtitle('ggplot 예제')+theme(plot.title=element_text(face='bold',size=30))+
labs(
     subtitle = 'The sub title',
     x = 'x', y = 'y', color = 'colors')+xlim(c(0,4000))+ylim(c(20,40))

 

예제2

 

ggplot2::fortify에 대한 에러 발생한 경우

library(rgdal) 
shp=readOGR('C:/Users/USER/Desktop/CJ/shp/CTPRVN_201703/TL_SCCO_CTPRVN.shp',encoding = 'UTF-8') 
crs=proj4string(shp) 
shp=spTransform(shp,CRS('+init=epsg:4326')) 
set.seed(1) 
temp=data.frame(id=shp@data$CTP_KOR_NM,random=sample(1:1000,length(shp@data$CTP_KOR_NM)),stringsAsFactors = F) 
library(ggmap) 
head(shp@data) 
shp2=fortify(shp,region='CTP_KOR_NM') 

shp3=dplyr::left_join(shp2,temp,'id') 
register_google(key=키) 
location=geocode('대한민국') 
map=get_googlemap(center = unlist(location),zoom=5) 
ggmap(map)+geom_polygon(data=shp3,aes(x=long,y=lat,group=group,fill=random))+scale_fill_gradient(limits=c(250,750)) 

bar plot 의 xlim이 0보다 크게 시작할 때   coord_cartesian(ylim = c(.6, 1),xlim=c(0,24))를 써 해결하면 된다.

 

'R' 카테고리의 다른 글

딥로또 R 버전  (0) 2020.02.10
R 스케줄링  (0) 2020.01.19
[R][SQL] RMariaDB 외부 접속 설정하기  (0) 2019.11.29
[공간정보오픈플렛폼]위경도 변환, 주소 변환  (0) 2019.11.27
[ggmap] pie chart 그리기 예제  (0) 2019.11.26

ubuntu18.04에서 RMariaDB를 설치부분은 생략하고 외부접속 설정 부분만을 언급하겠다. 외부 접속 설정을 위해서는 다음과 같은 다양한 절차가 필요하다.

 

 

방화벽 해제

 

먼저 포트포워딩을 통해 포트를 5800, 5900, 3306을 열어준다.

 

터미널에서 아래와 같이 명령어로 3306, 5900, 5800 포트를 개방해준다. 

sudo ufw allow 3306

sudo ufw allow 5900

sudo ufw allow 5800

 

mariaDB의 외부접속 허용

 

/etc/mysql/mariadb.conf.d 경로의 50-server.cnf에서 bind-address 를 0.0.0.0으로 변경해준다.

 

MariaDB에서 개정을 만들 때 create user '[username]'@'[host]' 부분에서 host는 외부 ip를 입력하면 된다. 

#MariaDB 접속
mysql -u root -p
#계정 생성
create user '[username]'@'[host or %]' identified by '[password]';
#권한 부여
grant all privileges on [database].* to '[username]'@'[host]';

use mysql; 
#유저 목혹 확인
select user, host from mysql.user;

#MariaDB 권한초기화
flush privileges;

#MariaDB 재시작
sudo service mysql restart


#MariaDB 유저 제거
delete from user wher user='[username]';

flush privileges;

R에서의 적용

 

'R' 카테고리의 다른 글

R 스케줄링  (0) 2020.01.19
[ggplot2] 시각화 정리  (0) 2019.12.08
[공간정보오픈플렛폼]위경도 변환, 주소 변환  (0) 2019.11.27
[ggmap] pie chart 그리기 예제  (0) 2019.11.26
ddply와 setDT 비교  (0) 2019.11.11