小编Dav*_*vid的帖子

SQL中的窗口函数:为什么称为窗口函数?

我了解窗口函数,但不明白为什么它们被称为窗口函数。当我们说“窗口”时,它既是分区子句,又是 ​​order by 子句吗?

sql t-sql sql-server

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

存储过程中的所有语句都是一个事务吗

如果存储过程包含多个语句,例如首先是 an insert,然后是 an update,最后是 a deletes ,并且存储过程在 的中间被终止delete,那么insertupdate是否也必须回滚?或者它只是回滚delete隐式事务?

t-sql sql-server transactions rollback

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

使用 R 连接到 Microsoft SQL Server(视图位于 Microsoft SQL Server Management Studio (SSMS) 中的数据库中)

我对 Microsoft SQL Server Management Studio (SSMS) 中的某些“视图”(表)有阅读权。我连接,进行我的查询并将文件导出为 csv,然后在 R 中读取它。现在我想在 R 中进行我的查询。我花了几个小时阅读这个,但仍然不明白我的代码应该是什么样子进行连接。我经常使用 tidyverse 中的软件包,并且看到有一个 dbplyr pacakge。

我连接到 SSMS 时的信息是:1)服务器类型:数据库引擎 2)服务器名称:我有这个。3) 身份验证:Windows 身份验证。4)用户名:我有这个。

我不需要密码(也许是因为我在我的工作网络?)

有人可以编写完整的代码(包括我必须加载哪些库)以访问 SSMS 中的视图。所以我安装了这些软件包:

library(DBI)
library(dplyr)
library(dbplyr)
library(odbc)
Run Code Online (Sandbox Code Playgroud)

然后我运行以下代码:

con <- dbConnect(odbc::odbc(), 
                 Driver = "SQL Server", 
                 Server = "something", 
                 user = "something\\my_username",
                 Trusted_Connection = "True")


dbListTables(con)
Run Code Online (Sandbox Code Playgroud)

但是我无法看到我需要的视图或表格。这是一个巨大的数据库。实际上,当我使用 SSMS 时,有很多数据库,而我只能访问该数据库中的某些视图。

sql-server ssms r tidyverse dbplyr

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

使用带有 group_by 和 nest() 的 purrr 和 ggplot 时获取绘图的标题

我有以下示例:

df <- mtcars


plot <- df %>% 
  mutate(carb=as.character(carb)) %>% 
  group_by(carb) %>% 
    nest() %>% 
  mutate(plot=map(data, function(.x){ .x  %>%
      ggplot() +
      geom_bar(aes(mpg))
  }))

print(plot)

# A tibble: 6 x 3
  carb  data               plot    
  <chr> <list>             <list>  
1 4     <tibble [10 x 10]> <S3: gg>
2 1     <tibble [7 x 10]>  <S3: gg>
3 2     <tibble [10 x 10]> <S3: gg>
4 3     <tibble [3 x 10]>  <S3: gg>
5 6     <tibble [1 x 10]>  <S3: gg>
6 8     <tibble [1 x …
Run Code Online (Sandbox Code Playgroud)

r ggplot2 dplyr purrr

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

将dplyr转换为data.table

所以我正在尝试翻译一些dplyr代码。我试图从将dplyr转换为data.table的程序包中获得帮助,但仍然无法正常工作。错误是row_number来自dplyr..

我需要dplyr代码中的所有步骤(即使在这里没有用mtcars

library(dplyr)
library(dtplyr) # from https://github.com/tidyverse/dtplyr
library(data.table)

mtcars %>% 
  distinct(mpg, .keep_all = TRUE) %>% 
  group_by(am) %>% 
  arrange(mpg, .by_group = TRUE) %>% 
  mutate(row_num = LETTERS[row_number()]) %>% 
  ungroup() 

# using dtplyr
dt <- lazy_dt(mtcars)

dt %>% 
  distinct(mpg, .keep_all = TRUE) %>% 
  group_by(am) %>% 
  arrange(mpg, .by_group = TRUE) %>% 
  mutate(row_num = LETTERS[row_number()]) %>% 
  ungroup() %>% 
  show_query()
#> unique(`_DT1`, by = "mpg")[order(am, mpg)][, `:=`(row_num = c("A", 
#> "B", "C", "D", "E", "F", "G", "H", "I", …
Run Code Online (Sandbox Code Playgroud)

r dplyr data.table dtplyr

5
推荐指数
3
解决办法
376
查看次数

使用 stringr 进行 mutate 中的字符串操作

假设我想在字符串中找到一个模式,如果该模式存在,那么我只保留该模式之前的字符串部分。我的问题是,如果模式不存在,那么它会返回NA,最终结果将是NA. 我希望它在模式不存在时返回原始字符串。

library(stringr)
library(dplyr)
unique(iris$Species)
#> [1] setosa     versicolor virginica 
#> Levels: setosa versicolor virginica

test <- iris %>%
  mutate(Species = str_sub(Species, 1, str_locate(Species, "t")[,1] ))

head(test)
#>   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
#> 1          5.1         3.5          1.4         0.2     set
#> 2          4.9         3.0          1.4         0.2     set
#> 3          4.7         3.2          1.3         0.2     set
#> 4          4.6         3.1          1.5         0.2     set
#> 5          5.0         3.6          1.4         0.2     set
#> 6          5.4         3.9          1.7         0.4     set
tail(test) …
Run Code Online (Sandbox Code Playgroud)

r stringr dplyr

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

在带有tidyeval的自制函数中选择函数

因此,此示例基本上来自https://tidyeval.tidyverse.org/dplyr.html#patterns-for-single-arguments,它可以正常工作:

library(tidyverse)
group_mean <- function(df, group_var, summary_var){
  group_var <-  rlang::enquo(group_var)
  summary_var <-rlang::enquo(summary_var)

  name <- paste0(rlang::quo_name(summary_var), "_mean")

  df %>%
    dplyr::group_by(!!group_var) %>%
    dplyr::summarise(!!name := mean(!!summary_var, na.rm = TRUE))
}

mtcars %>% group_mean(group_var = cyl, summary_var = disp)
#> # A tibble: 3 x 2
#>     cyl disp_mean
#>   <dbl>     <dbl>
#> 1     4      105.
#> 2     6      183.
#> 3     8      353.
Run Code Online (Sandbox Code Playgroud)

我想例如能够有时选择中位数而不是均值,例如将函数名称更改为group_stat()

r dplyr tidyeval rlang

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

当有n个连续的假人时进行分组

我有一个数据框,我创建了一系列虚拟变量,然后将它们组合成i final列.我想知道我是否有一个连续3个1的情况,即有没有办法在下面的例子中给出行3:5的数据帧的子集?

df <-  tibble(
      a= c(0, 0, 1, 1, 1, 0, 1, 1)
    )
df

# A tibble: 8 x 1
      a
  <dbl>
1     0
2     0
3     1
4     1
5     1
6     0
7     1
8     1
Run Code Online (Sandbox Code Playgroud)

r subset dplyr tibble

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

打印一些十六进制颜色以查看它们

我有以下颜色:

c("#bbb487", "#066e9f", "#e2dfcc", "#4e766d", "#dd8047", "#d8b25c")
Run Code Online (Sandbox Code Playgroud)

我想作一个简单的图,以便可以看到带有ggplot2R或R 的颜色。

r ggplot2

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

dplyr 中的不同不起作用(有时)

我有以下从计数中获得的数据框。我曾经dput使数据框可用,然后编辑数据框,因此存在A.

df <- structure(list(Procedure = structure(c(4L, 1L, 2L, 3L), .Label = c("A", "A", "C", "D", "-1"), 
                                         class = "factor"), n = c(10717L, 4412L, 2058L, 1480L)), 
              class = c("tbl_df", "tbl", "data.frame"), row.names = c(NA, -4L), .Names = c("Procedure", "n"))

print(df)

# A tibble: 4 x 2
  Procedure     n
  <fct>     <int>
1 D         10717
2 A          4412
3 A          2058
4 C          1480
Run Code Online (Sandbox Code Playgroud)

现在我想对过程进行区分,只保留第一个A

df %>% 
  distinct(Procedure, .keep_all=TRUE)

# A tibble: 4 x 2
  Procedure     n …
Run Code Online (Sandbox Code Playgroud)

r dplyr tibble

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

从数据可视化基础知识重新创建绘图

我想重新创建该图:数据可视化基础。另请参见下面的屏幕截图。我已经搜索了GitHub页面链接,但是找不到。有人可以创建像书籍一样的图,并沿水平轴分布吗?

书中的情节: 在此处输入图片说明

r ggplot2

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

HTML 中 rmarkdown 文件中的 Kable 标题以粗体显示

我想以粗体显示我的表格标题,但似乎找不到它的选项。

我的代码是(在 rmarkdown 文档中):

kable(head(iris), caption = 'I want this in Bold') %>% 
  kable_styling(bootstrap_options = c("striped", "hover", "condensed", "responsive")) 
Run Code Online (Sandbox Code Playgroud)

输出是:

在此处输入图片说明

r r-markdown kableextra kable

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

select into 中两个 varchar 列的连接

我有一个insert into tableA select from someTables,在我的select我有两个文本列,我将它们连接起来,例如colA + colB. 他们有类型varchar(n)。列应该TableA简单地是varchar(2n)?如果说我有,这对性能不利varchar(5*n)吗?

如果将两列连接varchar(n)起来,结果是否可能大于varchar(2n)或例如nvarchar(3n)

t-sql sql-server

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