샤이니 앱에서 SQL 명령어를 사용할 수 있는 패키지가 있어서 내용을 정리해봅니다.
-------------------------------------------------------------------------------------------------------------------------
CPU.txt
"app" "usr"
"1" "shiny-server/Hello" 4
"2" "shiny-server/Monitor" 4
-------------------------------------------------------------------------------------------------------------------------
CPU 테이블 변수
| "app" | "usr" |
"1" | "shiny-server/Monitor" | 1 |
"2" | "shiny-server/Hello" | 1 |
|
|
테이블 변수에서 "shiny-server/Monitor"는 모니터링 샤이니 앱이므로 테이블에서 제외하여야 합니다.
app열의 이름이 "shiny-server/Monitor"일 경우 제외하는 것인데 R 기본 명령어로는 하기가 좀 힘듭니다.
SQL 명령어를 사용하면 "SELECT * FROM CPU WHERE app != 'shiny-server/Monitor'"으로 쉽게 가능
한데 sqldf 패키지를 사용하면 해당 SQL 명령어를 샤이니 앱 안에서 사용할 수 있습니다.
sqldf 패키지를 사용하기 위해 리눅스 터미널에서 sudo -i shiny으로 현재 사용자를 shiny으로 변경하고 R을 칩니다.
사용자를 변경하지 않으면 패키지를 설치해도 해당 패키지가 샤이니 앱에 적용되지 않습니다.
install.packages("sqldf")으로 패키지를 설치하면 샤이니 앱에서 SQL 명령어를 사용할 수 있습니다.
샤이니 앱의 server.R 맨 위에 library(sqldf)을 추가하여 패키지 사용을 명시합니다.
CPU <- read.table("/srv/shiny-server/Data/CPU.txt")으로 테이블 변수를 생성합니다.
CPU <- sqldf("SELECT * FROM CPU WHERE app != 'shiny-server/Monitor'")으로 SQL 명령어를 실행합니다.
수정된 CPU 테이블 변수
| "app" | "usr" |
"2" | "shiny-server/Hello" | 1 |
|
|
Comment 2
-
cardiomoon
2015.05.06 05:24
-
김브링이
2015.05.06 18:43
감사합니다. 휴일에 좋은 생각이 더 많이 나는 것 같습니다 ㅎㅎ
어린이날에도 열심히 하시는군요. 수고하셨읍니다.