小编Ins*_*nds的帖子

验证R中函数内的对象是否存在

我想确定一个对象是否存在于R中的函数内:

foo <- function() {
 y <- "hello" 
 if (exists(y, envir = sys.frame())) print(y)
}
foo()
Run Code Online (Sandbox Code Playgroud)

存在错误(y,envir = sys.frame()):第一个参数无效

我想添加envir = sys.frame()就可以了.也试过了envir = environment()

预期

foo()
"hello"
Run Code Online (Sandbox Code Playgroud)

environment r scoping

5
推荐指数
1
解决办法
1671
查看次数

在 R 中解压缩受密码保护的 zip 文件

unzip( utils) 函数中不能指定密码。我知道的另一个功能,getZipHmisc ) 仅适用于包含一个压缩文件的 zip 文件。

我想做这样的事情来解压缩 Windows 8 中 foo.zip 中的所有文件:

unzip("foo.zip", password = "mypass")
Run Code Online (Sandbox Code Playgroud)

windows r unzip password-encryption

5
推荐指数
1
解决办法
5082
查看次数

更改 knitr::kable 标题的背景颜色

我需要更改用 knit::kable 打印的表格标题的背景颜色。我可以用来kableExtra::column_spec更改整个列的背景,但它不会影响标题行:

library(knitr)
library(kableExtra)

kable(data.frame(a = 1, b = 2)) %>% 
  column_spec(1, background = "yellow")
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

想要的结果:kable列标题a具有黄色背景(表的其余部分具有白色背景)的 输出。

在此输入图像描述

r knitr r-markdown kableextra kable

5
推荐指数
2
解决办法
8337
查看次数

限制闪亮字段中的输入类型

实际上,numericInput接受字符串和数字输入.如果输入一个字符串,则将其转换为NA(尝试使用下面的代码).有没有办法不允许用户在闪亮的数字字段中键入字符串?

ui <- fluidPage(
  numericInput("num", label = "text not allowed", value = 1),
  verbatimTextOutput("value")
)

server <- function(input, output) {
  output$value <- renderPrint({ input$num })      
}

shinyApp(ui = ui, server = server)
Run Code Online (Sandbox Code Playgroud)

到目前为止,我在数字输入旁边添加了一个文本输出,警告用户如果她在numericInput字段中输入字符串,则只接受数字.这个解决方案对我来说远非理想.

我希望用户无法在数字字段中输入字符值.

r data-entry shiny

4
推荐指数
1
解决办法
3928
查看次数

R Shiny - 在radioButtons中没有选择初始值?

从文档:

radioButtons(inputId,label,choices,selected = NULL,inline = FALSE,width = NULL)

参数

选中 最初选择的值(如果未指定则默认为第一个值)

但是,您可以指定selected参数,以便渲染的radioButtons没有选择初始值吗?此初始值的输出可以是空字符串("").在下面的示例中,应用程序运行时不应选择"a"和"b".

library(shiny)

runApp(
  list(
    ui = shinyUI(
      fluidPage(
        radioButtons("test","test",choices=c("a","b"),selected = NULL),
        verbatimTextOutput("value")
      )
    ), server = shinyServer(function(input, output,session) {
      output$value <- renderText(input$test)
    })
  )
)
Run Code Online (Sandbox Code Playgroud)

UPDATE

正如Hackerman所说,selected = character(0)诀窍就是这样.

r radio-button shiny

4
推荐指数
1
解决办法
3606
查看次数

在dplyr中找出分组值之间的差异

我想找出所观察到的案件与不属于案件类型的案件之间的区别:

set.seed(42)
df <- data.frame(type = factor(rep(c("A", "B", "C"), 2)), observed = rep(c(T,F), 3), 
                 val1 = sample(5:1, 6, replace = T), val2 = sample(1:5, 6, replace = T), 
                 val3 = sample(letters[1:5], 6, replace = T))

#      type observed val1 val2 val3
# 1    A     TRUE    1    4    e
# 2    B    FALSE    1    1    b
# 3    C     TRUE    4    4    c
# 4    A    FALSE    1    4    e
# 5    B     TRUE    2    3    e
# 6    C    FALSE …
Run Code Online (Sandbox Code Playgroud)

grouping r dplyr summarize

3
推荐指数
1
解决办法
516
查看次数

在 R Shiny 中触发反应流的键盘快捷键?

是否可以在 Shiny 应用程序(在 Windows 中)中拥有,说F7Q触发反应流?这个问题提供了使用键盘输入交替选项卡的代码,但我对启动反应流感兴趣。例如,每次用户按下Q键盘时都会“触发”一个按钮。

javascript r reactive-programming shiny

2
推荐指数
1
解决办法
1058
查看次数

Shiny可以识别鼠标选择的文本(突出显示的文本)吗?

我需要用户将文本片段分配给Shiny中的类别或“代码”。基本上,我希望用户突出显示来自输出的文本(在下面的示例中,来自tabletext输出),然后按按钮(code)并将选定的文本分配给应用程序内的对象。在下面的应用中,所选文本应呈现为output$selected_text。我希望您能就如何实现此目标提出任何建议,我怀疑JavaScript会有所帮助。

library(shiny)

text1 <- "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce nec quam ut tortor interdum pulvinar id vitae magna. Curabitur commodo consequat arcu et lacinia. Proin at diam vitae lectus dignissim auctor nec dictum lectus. Fusce venenatis eros congue velit feugiat, ac aliquam ipsum gravida. Cras bibendum malesuada est in tempus. Suspendisse tincidunt, nisi non finibus consequat, ex nisl condimentum orci, et dignissim neque est vitae nulla." …
Run Code Online (Sandbox Code Playgroud)

r shiny

2
推荐指数
1
解决办法
519
查看次数

根据匹配列删除df中的重复行

df有一个link列(类型列表),指定记录是否匹配df(即,如果它有重复).

df <- data.frame(id=1:7,link=I(list(c(2,3),c(1,3),c(1,2),NA,NA,7,6)))

  id link
1  1 2, 3
2  2 1, 3
3  3 1, 2
4  4   NA
5  5   NA
6  6    7
7  7    6
Run Code Online (Sandbox Code Playgroud)

我想要子集df以仅保留具有链接记录的那些行的第一个匹配行(即,关于按ID的顺序).我想要:

  id link
1  1 2, 3
2  4   NA
3  5   NA
4  6    7
Run Code Online (Sandbox Code Playgroud)

我已经尝试了一个循环来存储id要从df中删除的行的值to_remove.它现在不太有效,我觉得我正在过度思考这个问题.

to_remove <- character(0)
for (n in 1:nrow(df)) {
  links <- df$link[[n]]
  if (all(is.na(links))) next # skip if no links …
Run Code Online (Sandbox Code Playgroud)

r duplicates dataframe

1
推荐指数
1
解决办法
98
查看次数

在R中绘制键盘布局

我正在创建一个带有自定义键盘快捷键的Shiny应用程序(例如,如果有人按下s,将提交一些数据).为此,我发现在R中生成键盘布局的"图"以将键映射到其快捷键功能并在应用程序中显示非常有用.

这些是一些虚拟快捷方式:

actions <- c("back", "next", "update", "submit") 
keys <- c(",", ".", "u", "s")
keycode <- c(188,190,85,83)
data.frame(actions, keys, keycode)

# actions  keys keycode
# back      ,     188
# next      .     190
# update    u      85
# submit    s      83
Run Code Online (Sandbox Code Playgroud)

我想要这样的东西:

在此输入图像描述

但我想选择每个键内显示的内容.我能找到的唯一一个类似的远程问题并不是很有用.我想知道这是否可以作为地图绘制,也许?

mapping plot keyboard-shortcuts r ggplot2

1
推荐指数
1
解决办法
110
查看次数