R shiny로 데이터의 기초 분석용 앱 작성①
소개
R shiny로 앱을 만들어 보았다(자세한 것은 여기 )가 너무 심플했기 때문에, 좀 더, 복잡한 것을 만들고 싶다고 생각해 왔다. 내용으로서는 csv 파일을 읽어 데이터의 기초 분석(통계량의 계산, 시각화 등)을 자동으로 실시할 수 있는 어플을 개발하고 싶다. 길어질 것 같기 때문에, 테마별로 나누어 기사를 써 가고 싶다.
사용할 데이터 준비
우선은 이 기사 로 작성한 사람의 성별, 신장, 체중, 혈액형이 있는 데이터를 취급하고 싶다. 기사대로 1000명분의 데이터를 작성하면, 그것을 csv 파일에 출력한다.
> str(df)
'data.frame': 1000 obs. of 4 variables:
$ SEX : chr "female" "male" "male" "male" ...
$ HEIGHT: num 154 178 163 176 156 ...
$ WEIGHT: num 48 70.8 48.2 76.4 40.9 ...
$ BLOOD : chr "O" "A" "A" "O" ...
> write.csv(df, "./data.csv")
이것으로 사용하는 데이터를 준비할 수 있었다.
파일 로드 및 표시
우선 기초가 되는 파일을 읽어 표시하는 앱을 작성한다.
app.R# Load packages ----
library(shiny)
# Source helpers ----
# User interface ----
ui <- fluidPage(
titlePanel("Basic analysis"),
sidebarLayout(
sidebarPanel(
fileInput("file",
label = "File input",
accept = c("text/csv"),
multiple = FALSE,
width = "80%")
),
mainPanel(
dataTableOutput("outFile"),
)
)
)
# Server logic
server <- function(input, output) {
inFile <- reactive({
tmp <- input$file
if (is.null(tmp)){
return(NULL)
} else {
df <- read.csv(tmp$datapath, header=TRUE)
return(df)
}
})
output$outFile <- renderDataTable({
data.frame(inFile())
})
}
# Run the app
shinyApp(ui, server)
이 작업을 수행하고 data.csv를 로드하면,
데이터 테이블을 표시 할 수있었습니다.
탭 만들기
mainPanel에 tabsetPanel을 추가하여 다시 씁니다. 탭마다 데이터, 통계량, 시각화를 바꿀 수 있도록 작성한다. 탭 내용에 대해서는 다음 기사에서 쓰려고 한다.
app.R# Load packages ----
library(shiny)
# Source helpers ----
# User interface ----
ui <- fluidPage(
titlePanel("Basic analysis"),
sidebarLayout(
sidebarPanel(
fileInput("file",
label = "File input",
accept = c("text/csv"),
multiple = FALSE,
width = "80%")
),
mainPanel(
tabsetPanel(type = "tabs",
tabPanel("Data", dataTableOutput("outFile")),
tabPanel("Statistic", h1("Statistics value")),
tabPanel("Visualize", h1("Plot"))
)
)
)
)
# Server logic
server <- function(input, output) {
inFile <- reactive({
tmp <- input$file
if (is.null(tmp)){
return(NULL)
} else {
df <- read.csv(tmp$datapath, header=TRUE)
return(df)
}
})
output$outFile <- renderDataTable({
data.frame(inFile())
})
}
# Run the app
shinyApp(ui, server)
결론
다음 기사에서는 탭의 하나인 기초 통계량의 산출과 표시를 실시하고 싶다.
R shiny로 데이터의 기초 분석용 앱 작성②
Reference
이 문제에 관하여(R shiny로 데이터의 기초 분석용 앱 작성①), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ryamamoto0406/items/ece1a064f85e7c0466aa
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
우선은 이 기사 로 작성한 사람의 성별, 신장, 체중, 혈액형이 있는 데이터를 취급하고 싶다. 기사대로 1000명분의 데이터를 작성하면, 그것을 csv 파일에 출력한다.
> str(df)
'data.frame': 1000 obs. of 4 variables:
$ SEX : chr "female" "male" "male" "male" ...
$ HEIGHT: num 154 178 163 176 156 ...
$ WEIGHT: num 48 70.8 48.2 76.4 40.9 ...
$ BLOOD : chr "O" "A" "A" "O" ...
> write.csv(df, "./data.csv")
이것으로 사용하는 데이터를 준비할 수 있었다.
파일 로드 및 표시
우선 기초가 되는 파일을 읽어 표시하는 앱을 작성한다.
app.R# Load packages ----
library(shiny)
# Source helpers ----
# User interface ----
ui <- fluidPage(
titlePanel("Basic analysis"),
sidebarLayout(
sidebarPanel(
fileInput("file",
label = "File input",
accept = c("text/csv"),
multiple = FALSE,
width = "80%")
),
mainPanel(
dataTableOutput("outFile"),
)
)
)
# Server logic
server <- function(input, output) {
inFile <- reactive({
tmp <- input$file
if (is.null(tmp)){
return(NULL)
} else {
df <- read.csv(tmp$datapath, header=TRUE)
return(df)
}
})
output$outFile <- renderDataTable({
data.frame(inFile())
})
}
# Run the app
shinyApp(ui, server)
이 작업을 수행하고 data.csv를 로드하면,
데이터 테이블을 표시 할 수있었습니다.
탭 만들기
mainPanel에 tabsetPanel을 추가하여 다시 씁니다. 탭마다 데이터, 통계량, 시각화를 바꿀 수 있도록 작성한다. 탭 내용에 대해서는 다음 기사에서 쓰려고 한다.
app.R# Load packages ----
library(shiny)
# Source helpers ----
# User interface ----
ui <- fluidPage(
titlePanel("Basic analysis"),
sidebarLayout(
sidebarPanel(
fileInput("file",
label = "File input",
accept = c("text/csv"),
multiple = FALSE,
width = "80%")
),
mainPanel(
tabsetPanel(type = "tabs",
tabPanel("Data", dataTableOutput("outFile")),
tabPanel("Statistic", h1("Statistics value")),
tabPanel("Visualize", h1("Plot"))
)
)
)
)
# Server logic
server <- function(input, output) {
inFile <- reactive({
tmp <- input$file
if (is.null(tmp)){
return(NULL)
} else {
df <- read.csv(tmp$datapath, header=TRUE)
return(df)
}
})
output$outFile <- renderDataTable({
data.frame(inFile())
})
}
# Run the app
shinyApp(ui, server)
결론
다음 기사에서는 탭의 하나인 기초 통계량의 산출과 표시를 실시하고 싶다.
R shiny로 데이터의 기초 분석용 앱 작성②
Reference
이 문제에 관하여(R shiny로 데이터의 기초 분석용 앱 작성①), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ryamamoto0406/items/ece1a064f85e7c0466aa
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
# Load packages ----
library(shiny)
# Source helpers ----
# User interface ----
ui <- fluidPage(
titlePanel("Basic analysis"),
sidebarLayout(
sidebarPanel(
fileInput("file",
label = "File input",
accept = c("text/csv"),
multiple = FALSE,
width = "80%")
),
mainPanel(
dataTableOutput("outFile"),
)
)
)
# Server logic
server <- function(input, output) {
inFile <- reactive({
tmp <- input$file
if (is.null(tmp)){
return(NULL)
} else {
df <- read.csv(tmp$datapath, header=TRUE)
return(df)
}
})
output$outFile <- renderDataTable({
data.frame(inFile())
})
}
# Run the app
shinyApp(ui, server)
mainPanel에 tabsetPanel을 추가하여 다시 씁니다. 탭마다 데이터, 통계량, 시각화를 바꿀 수 있도록 작성한다. 탭 내용에 대해서는 다음 기사에서 쓰려고 한다.
app.R
# Load packages ----
library(shiny)
# Source helpers ----
# User interface ----
ui <- fluidPage(
titlePanel("Basic analysis"),
sidebarLayout(
sidebarPanel(
fileInput("file",
label = "File input",
accept = c("text/csv"),
multiple = FALSE,
width = "80%")
),
mainPanel(
tabsetPanel(type = "tabs",
tabPanel("Data", dataTableOutput("outFile")),
tabPanel("Statistic", h1("Statistics value")),
tabPanel("Visualize", h1("Plot"))
)
)
)
)
# Server logic
server <- function(input, output) {
inFile <- reactive({
tmp <- input$file
if (is.null(tmp)){
return(NULL)
} else {
df <- read.csv(tmp$datapath, header=TRUE)
return(df)
}
})
output$outFile <- renderDataTable({
data.frame(inFile())
})
}
# Run the app
shinyApp(ui, server)
결론
다음 기사에서는 탭의 하나인 기초 통계량의 산출과 표시를 실시하고 싶다.
R shiny로 데이터의 기초 분석용 앱 작성②
Reference
이 문제에 관하여(R shiny로 데이터의 기초 분석용 앱 작성①), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ryamamoto0406/items/ece1a064f85e7c0466aa
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(R shiny로 데이터의 기초 분석용 앱 작성①), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ryamamoto0406/items/ece1a064f85e7c0466aa텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)