小编DHW*_*DHW的帖子

如何告诉 RStudio 使用包名称自动完成函数的参数?

根据 RStudio 的说法:

此外,某些函数(例如library() 和require())需要包名称来完成。RStudio 自动推断特定函数是否需要包名称并提供这些名称作为补全...

我的问题是:如何?我正在编写一个自定义函数,该函数将包名称作为参数,但 RStudio 仅使用对象和函数名称来完成参数,并且我无法判断RStudio 正在获取的代码library()是什么。require()

我的职能是:

unpack <- function(...,
                   lib   = NULL,
                   repos = getOption("repos")) {
  pkgs <- sapply(match.call(expand.dots = TRUE)[-1], as.character)
  new.pkgs <-
    pkgs[!(
      pkgs %in% installed.packages(lib.loc = lib)[, "Package"]
    )]
  if (length(new.pkgs))
    install.packages(new.pkgs,
                     lib   = lib,
                     repos = repos)
  sapply(pkgs, require,
         lib.loc = lib,
         character.only = TRUE)
}
Run Code Online (Sandbox Code Playgroud)

r autocomplete package rstudio r-infer

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

自定义 DataTables 如何在 Shiny 中显示缺失值

DataTables, 在 Shiny 中,将缺失值显示为空格。有没有办法改变它?我特别梦想RStudio 在其数据查看器中使用的灰色斜体NA。出于显示目的将此类字符串注入字符列我没有问题,但是,当然,有时列是数字或日期,将它们转换为仅用于显示似乎有问题。

DT默认缺失值的MWE显示:

library(DT)
library(shiny)

ui <- fluidPage(
    dataTableOutput("airquality")
)

server <- function(input, output) {
    output$airquality <- renderDataTable(airquality)
}

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

default_dt_display

r datatables missing-data shiny dt

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

将新的 odbc 包与 IP 地址和无 DSN 与 Oracle 服务器一起使用

odbc只要我为我的 Oracle 服务器添加 DSN,我就可以让这个包在 Windows 中工作,但否则我根本无法让它工作。也就是说,在添加一个名为“DummyDB”的 DSN 条目后,该条目仅包含一个 IP 地址和服务 ID(当然,除了驱动程序),这有效:

conn <- dbConnect(odbc(), 
                  DSN = "DummyDB",
                  UID = credentials$login,
                  PWD = credentials$pw,
                  Port = 1521)
Run Code Online (Sandbox Code Playgroud)

然而,这与 DSN 条目中的 IP、驱动程序和服务 ID 完全相同,并没有(IP 出于隐私目的而被排除):

conn <- dbConnect(odbc(), 
                  Driver = "Oracle in IC",
                  Host = "xx.xxx.xx.xxx",
                  SVC = "XE",
                  UID = credentials$login,
                  PWD = credentials$pw,
                  Port = 1521)
Run Code Online (Sandbox Code Playgroud)

这也不起作用:

conn <- dbConnect(odbc(), .connection_string = "Driver={Oracle in IC};Server=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=xx.xxx.xx.xxx)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=xe)));Uid=xxx;Pwd=xxx;")
Run Code Online (Sandbox Code Playgroud)

当然,我已经尝试以各种方式调整所有这些。无论如何,我得到了永远神秘的:

nanodbc/nanodbc.cpp:950: HY000: [Oracle][ODBC][Ora]ORA-12560: TNS:protocol adapter error

强制性细节:

  • 我正在使用我的路由器软件的 VPN 和端口转发,并且这些配置必须足够正确才能使 DSN 连接成功,指向路由器的 WAN …

oracle odbc r

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

标签 统计

r ×3

autocomplete ×1

datatables ×1

dt ×1

missing-data ×1

odbc ×1

oracle ×1

package ×1

r-infer ×1

rstudio ×1

shiny ×1