我正在努力使用data.frame列的变量标签.假设我有以下数据框(更大的数据框的一部分):
data <- data.frame(age = c(21, 30, 25, 41, 29, 33), sex = factor(c(1, 2, 1, 2, 1, 2), labels = c("Female", "Male")))
#
Run Code Online (Sandbox Code Playgroud)
我还有一个带有该数据框变量标签的命名向量:
var.labels <- c(age = "Age in Years", sex = "Sex of the participant")
Run Code Online (Sandbox Code Playgroud)
我想在分配变量标签var.labels在数据帧中的列data使用功能label从Hmisc包.我可以像这样一个接一个地做,然后检查结果:
> label(data[["age"]]) <- "Age in years"
> label(data[["sex"]]) <- "Sex of the participant"
> label(data)
age sex
"Age in years" "Sex of the participant"
Run Code Online (Sandbox Code Playgroud)
变量标签被指定为列的属性:
> attr(data[["age"]], "label")
[1] "Age in years"
> …Run Code Online (Sandbox Code Playgroud) 我首先提到了这个问题,但答案对我的情况没有帮助.
我有一个列表,其中每个组件包含以数字开头的元素,后跟单词(字符).元素开头的一些数字有一个或多个前导零.这是列表的一小部分:
x <- list(el1 = c("0010 First",
"0200 Second",
"0300 Third",
"4000 Fourth",
"0 Undefined",
"60838 Random",
"903200 Haphazard"),
el2 = c("0100 Hundredth",
"0200 Two hundredth",
"0300 Three hundredth",
"0040 Fortieth",
"0 Undefined",
"949848 Random",
"202626 Haphazard"),
el3 = c("0010 First",
"0200 Second",
"0300 Third",
"0100 Hundredth",
"0200 Two hundredth",
"0300 Three hundredth",
"0 Undefined",
"60838 Random",
"20200 Haphazard"))
Run Code Online (Sandbox Code Playgroud)
我想要实现的是删除它们可用的前导零,并且在开头0 Undefined加上所有其他不以前导零开头的元素仍然具有单个零.也就是说,将列表如下:
x <- list(el1 = c("10 First",
"200 Second",
"300 Third",
"4000 Fourth",
"0 Undefined", …Run Code Online (Sandbox Code Playgroud) 我有一个这样的列表:
mylist <- list(PP = c("PP 1", "OMITTED"),
IN01 = c("DID NOT PARTICIPATE", "PARTICIPATED", "OMITTED"),
RD1 = c("YES", "NO", "NOT REACHED", "INVALID", "OMITTED"),
RD2 = c("YES", "NO", "NOT REACHED", "NOT AN OPTION", "OMITTED"),
LOS = c("LESS THAN 3", "3 TO 100", "100 TO 500", "MORE THAN 500", "LOGICALLY NOT APPLICABLE", "OMITTED"),
COM = c("BAN", "SBAN", "RAL"),
VR1 = c("WITHIN 30", "WITHIN 200", "NOT AVAILABLE", "OMITTED"),
INF = c("A LOT", "SOME", "LITTLE OR NO", "NOT APPLICABLE", "OMITTED"),
IST = c("FULL-TIME", "PART-TIME", …Run Code Online (Sandbox Code Playgroud) 我有一个rmarkdown要使用data.tables 列表并将其包含在PDF / HTML / MS Word文档中的文档。列表的每个组成部分都包含一个data.table。
我想要达到的目的是使用kable带有标题的文档添加所有表。
当我data.table像这样一一索引
```{r}
kable(list.of.dts[[1]], caption = paste0("Frequency table for the '", colnames(list.of.dts[[1]])[2], "' variable."))
```
Run Code Online (Sandbox Code Playgroud)
一切都很好,并且表格的格式正确,如下面的屏幕截图所示。
但是,如果我尝试使用lapply到kable所有data.tables在列表中这样
```{r}
lapply(X = list.of.dts, FUN = function(i) {
kable(x = i, caption = paste0("Frequency table for the '", colnames(i)[2], "' variable."))
})
```
Run Code Online (Sandbox Code Playgroud)
处理所有内容data.tables并将它们包含在文档中,我得到了相当基本的粗略输出,如下面的屏幕截图所示。
此外,如果我只是将data.tables 的列表传递给kable这样
```{r}
kable(list.of.dts)
```
Run Code Online (Sandbox Code Playgroud)
我得到了所有具有更好格式的表(尽管不是第一个示例中的表),但是彼此堆叠,位于页面中间,并且不能添加标题:
有谁知道为什么会这样,我该如何克服这个问题?
编辑1:
我已经放入result="asis" …
Dean Attali 提供了一个精彩的示例,介绍如何使用关闭按钮优雅地退出 Shiny 应用程序,该按钮既关闭浏览器窗口又结束 Shiny 会话。考虑以下示例(Dean 原始代码的修改):
这ui.r:
library(shiny)
library(shinyjs)
jscode <- "shinyjs.closeWindow = function() { window.close(); }"
ui <- fluidPage(
useShinyjs(),
extendShinyjs(text = jscode, functions = c("closeWindow")),
htmlOutput(outputId = "exitHeading"),
actionButton(inputId = "closeGUI", label = "Exit")
)
Run Code Online (Sandbox Code Playgroud)
这server.r:
library(shiny)
library(shinyjs)
server <- function(input, output, session) {
output$exitHeading <- renderText("Press the button below to exit the app")
observeEvent(input$closeGUI, {
js$closeWindow()
stopApp()
})
}
Run Code Online (Sandbox Code Playgroud)
并运行应用程序:
runApp(appDir = "/tmp")
Run Code Online (Sandbox Code Playgroud)
我的问题是关于如何以编程方式启动 Shiny 应用程序作为后台作业,以便在应用程序仍在运行时,RStudio 控制台可以免费进一步使用(甚至并行启动第二个 …
新来shiny现在有了这个挣扎超过两天。我创建了一个应用程序,用户在其中加载.csv数据文件,并选择一个或多个变量,这些变量的名称在应用程序中显示为复选框。选中复选框后,将在其下方显示一个具有相同名称的新复选框,当单击该复选框时,其textAreaInput旁边也会出现一个,用户可以在其中添加构成目标变量的变量名称作为比例。这是应用程序的过度简化版本:
library(shiny)
ui <- fluidPage(
mainPanel(
fileInput(inputId = "file", label = "Choose File", multiple = TRUE, accept = ".csv"),
uiOutput(outputId = "varCheckBoxesIndivScores"),
column(width = 3,
uiOutput(outputId = "selectedScoresCheckBoxes")),
conditionalPanel(condition = "input.selectedScoresCheckBoxes",
column(width = 6,
uiOutput(outputId = "variablesConstitutingScale"))
)
)
)
server = function(input, output, session) {
df <- reactive({
if(is.null(input$file)) {
return(NULL)
} else {
tbl <- fread(input$file$datapath, stringsAsFactors = TRUE)
return(tbl)
}
})
output$varCheckBoxesIndivScores <- renderUI({
if(is.null(df())) {
return(NULL)
} else if(!is.null(df())) { …Run Code Online (Sandbox Code Playgroud) r ×6
list ×2
shiny ×2
assign ×1
character ×1
dataframe ×1
dynamic ×1
hmisc ×1
intersection ×1
kable ×1
labels ×1
leading-zero ×1
match ×1
r-markdown ×1
regex ×1
tabular ×1
textarea ×1
user-input ×1