小编Gio*_*tti的帖子

无法使用 FreeTDS 连接到 Docker 容器内的 Microsoft SQL Server

我想使用 Docker for Windows 在我的公司网络上托管 Shiny 应用程序。

如何设置 Docker、odbc.ini、odbcinst.ini、freetds.conf 或其他可能的文件,以便我的 Shiny 应用程序可以从内部 Microsoft SQL Server (2016) 数据库查询数据?数据库服务器不在运行 Docker 容器的同一台机器上运行。

我不知道我是否需要更新版本的 FreeTDS 或者我是否错误配置了其中一个文件。我尝试将 IP 地址用于服务器而不是sql-server.host.com在所有文件中,但在下面收到相同的错误消息。

$tsql -C输出:

Compile-time settings (established with the "configure" script)
                            Version: freetds v1.00.104
             freetds.conf directory: /etc/freetds
     MS db-lib source compatibility: no
        Sybase binary compatibility: yes
                      Thread safety: yes
                      iconv library: yes
                        TDS version: 4.2
                              iODBC: no
                           unixodbc: yes
              SSPI "trusted" logins: no
                           Kerberos: yes
                            OpenSSL: no
                             GnuTLS: yes
                               MARS: no
Run Code Online (Sandbox Code Playgroud)

$odbcinst -j …

sql-server r freetds shiny docker

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

如何从数据帧构造case_when的参数?

我正在尝试基于温度创建许多不同的加权方案。

我创建了一个数据框,其中包含8个向量的所有可能组合(每个向量代表一个温度范围)。因此,数据框的列是特定的温度范围,行是权重。

我想将温度范围作为参数传递给case_when,并遍历权重数据帧的每一行,根据实际温度为每一行创建一个新变量,并根据权重数据中的信息为该温度创建关联的权重帧。

使用以下文章,我能够创建一个函数来生成权重数据框:

以编程方式将dplyr :: case_when与参数一起使用

但是我不知道如何case_when使用权重数据帧构造参数。

创建所有可能权重的数据框的功能

library(rlang)
library(tidyverse)

create_temp_weights <- function(
  from = 31,
  to = 100,
  by = 10,
  weights = exprs(between(., 31, 40) ~ c(0, 0.2),
                  between(., 41, 50) ~ c(0.5, 0.8),
                  between(., 51, 90) ~ c(0.8, 1),
                  between(., 91, 100) ~ c(0.2, 0.8),
                  TRUE ~ c(-0.1, 0))
) {

  # use 999 to map other temperatures to last case
  map(c(seq(from, to, by), 999), ~ case_when(!!!weights)) %>%
    set_names(c(map_chr(seq(from, to, by),
                      ~ …
Run Code Online (Sandbox Code Playgroud)

r dplyr tidyverse rlang

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

与 data.table 进行非等联接时重命名联接变量

我想在两个data.tables之间进行非对等连接(示例如下)。有没有办法重命名参数中的 join-by 变量on

我尝试了以下但它不会产生预期的列名(initial_datefinal_date)。我知道我可以data.table::setnames()用来重命名变量。


library(data.table)

dt1 <- data.table(id = c("a", "b"), 
                  initial_date = as.Date(c("2019-01-01", "2019-02-01")),
                  final_date = as.Date(c("2019-02-01", "2019-03-01")))
dt2 <- data.table(id = c("a", "a", "b", "b"), 
                  x = c(1, 2, 3, 4),
                  date = as.Date(c("2019-01-01", "2019-01-04", "2019-02-03", "2019-02-19")))

dt2[dt1, 
    .(x = sum(x)),
    on = .(id, initial_date = date >= initial_date, final_date = date <= final_date), 
    by = .EACHI]
#>    id       date       date x
#> 1:  a 2019-01-01 2019-02-01 3 …
Run Code Online (Sandbox Code Playgroud)

r data.table

5
推荐指数
0
解决办法
87
查看次数

dbReadTable 将日期列从 SQL 数据库强制转换为字符

我可以将日期写入 SQL 表,DBI::dbWriteTable()并看到该列实际上在数据库上被格式化为日期。但是当我使用DBI::dbReadTable()相同的日期列时,它会被强制转换为 R 中的字符列。

如何将 SQL 表读入 R 并保留日期列格式?

library(DBI)

df <- data.frame(date = as.Date("2012-01-01"))
class(df$date)
#> [1] "Date"

udt <- dbConnect(odbc::odbc(), "udt")
dbWriteTable(udt, name = Id(schema = "FarmingAnalytics", table = "test"), value = df, overwrite = TRUE)

df2 <- dbReadTable(udt, name = Id(schema = "FarmingAnalytics", table = "test")) 
class(df2$date)
#> [1] "character"
Run Code Online (Sandbox Code Playgroud)

由reprex 包于 2020 年 1 月 20 日创建(v0.3.0)

sql r date

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

为什么 .env 代词在 dplyr::slice_max 中不起作用?

.env代词用来指代对象的环境(而不是一个data.frame内)以及内业等dplyr动词,但返回一个错误slice_max。为什么?考虑以下函数:


library(dplyr)
#> 
#> Attaching package: 'dplyr'
#> The following objects are masked from 'package:stats':
#> 
#>     filter, lag
#> The following objects are masked from 'package:base':
#> 
#>     intersect, setdiff, setequal, union
library(rlang)

f1 <- function(y) {
  d <- tibble(x = runif(20))
  d %>% 
    slice_max(order_by = .data$x, n = .env$y)
}

f2 <- function(y) {
  d <- tibble(x = runif(20))
  d %>% 
    filter(.data$x >= .env$y)
}

f3 <- function(y) {
  d <- tibble(x = runif(20)) …
Run Code Online (Sandbox Code Playgroud)

r dplyr rlang

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

使用 chrome_print 将 pagedown html_resume 编织为 pdf 会产生错误

我想生成HTML和带简历的PDF版本pagedown::html_resumepagedown::chrome_print

我尝试从提供的示例中运行以下代码pagedown

---
title: "Lijia Yu's resume"
author: Lijia Yu
date: "`r Sys.Date()`"
output:
  pagedown::html_resume:
    # set it to true for a self-contained HTML page but it'll take longer to render
    self_contained: false
knit: pagedown::chrome_print
---

Aside
================================================================================


![Lijia Yu](https://avatars1.githubusercontent.com/u/895125?s=400&v=4){width=80%}


Contact Info {#contact}
--------------------------------------------------------------------------------

- <i class="fa fa-envelope"></i> lijia.yu@outlook.com
- <i class="fa fa-github"></i> [github.com/yulijia](https://github.com/yulijia)
- <i class="fa fa-phone"></i> +1 000-000-0000
- For more information, please contact me via email.
Run Code Online (Sandbox Code Playgroud)

但我收到此错误:

Error in pagedown::chrome_print("/Users/Person/Documents/r/projects/Untitled.Rmd",  : …
Run Code Online (Sandbox Code Playgroud)

r knitr pagedown r-markdown

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

标签 统计

r ×6

dplyr ×2

rlang ×2

data.table ×1

date ×1

docker ×1

freetds ×1

knitr ×1

pagedown ×1

r-markdown ×1

shiny ×1

sql ×1

sql-server ×1

tidyverse ×1