-
Notifications
You must be signed in to change notification settings - Fork 0
/
app2.R
146 lines (119 loc) · 3.24 KB
/
app2.R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
R
# Setting the libraries to be used
library(shiny)
library(readxl)
library(dplyr)
# Define the UI
ui <- fluidPage(
# App title
titlePanel("Data Conversion App"),
# Sidebar panel for user input
sidebarLayout(
sidebarPanel(
# Input: Select the file
fileInput("data", "Choose CSV/XLS/XLSX File",
accept = c("text/csv",
"text/comma-separated-values,text/plain",
".csv",
".xls",
".xlsx")
),
# Select the cols to delete
checkboxGroupInput("cols", "Select the columns to delete",
choices = NULL),
# Check to join files
checkboxInput("join", "Join files that completely match the first column?",
TRUE)
),
# Show a table with the data
mainPanel(
tableOutput("contents")
)
)
)
# Define the server logic
server <- function(input, output, session) {
# Create a reactive value for the selected file
my_data <- reactive({
infile <- input$data
if (is.null(infile))
return(NULL)
df <- read_excel(infile$datapath)
updateCheckboxGroupInput(session, "cols", choices = colnames(df))
df
})
# Show the selected file
output$contents <- renderTable({
my_data()
})
# Run the app
shinyApp(ui = ui, server = server)
# Create the output
output$out <- reactive({
infile <- my_data()
if (is.null(infile))
return(NULL)
df <- infile[,!(input$cols)]
if (input$join) {
df <- merge(df, infile[,!(input$cols)], by="First_Col")
}
```R
# Setting the libraries to be used
library(shiny)
library(readxl)
library(dplyr)
# Define the UI
ui <- fluidPage(
# App title
titlePanel("Data Conversion App"),
# Sidebar panel for user input
sidebarLayout(
sidebarPanel(
# Input: Select the file
fileInput("data", "Choose CSV/XLS/XLSX File",
accept = c("text/csv",
"text/comma-separated-values,text/plain",
".csv",
".xls",
".xlsx")
),
# Select the cols to delete
checkboxGroupInput("cols", "Select the columns to delete",
choices = NULL),
# Check to join files
checkboxInput("join", "Join files that completely match the first column?",
TRUE)
),
# Show a table with the data
mainPanel(
tableOutput("contents")
)
)
)
# Define the server logic
server <- function(input, output, session) {
# Create a reactive value for the selected file
my_data <- reactive({
infile <- input$data
if (is.null(infile))
return(NULL)
df <- read_excel(infile$datapath)
updateCheckboxGroupInput(session, "cols", choices = colnames(df))
df
})
# Show the selected file
output$contents <- renderTable({
my_data()
})
# Create the output
output$out <- reactive({
infile <- my_data()
if (is.null(infile))
return(NULL)
df <- infile[,!(input$cols)]
if (input$join) {
df <- merge(df, infile[,!(input$cols)], by="First_Col")
}
write.table(df, file="my_data.tsv", sep="\t
# Run the app
shinyApp(ui = ui, server = server)