小编Ale*_*nov的帖子

使用dplyr获取SQL表的列类型

是否有dplyr(或其他包)命令用于获取SQL表的列(字段?)类型?例如...

library(RSQLite)
library(dplyr)

data(iris)

dat_sql <- src_sqlite("test.sqlite", create = TRUE)
copy_to(dat_sql, iris, name = "iris_df")

iris_tbl <- tbl(dat_sql, "iris_df")
iris_tbl
# Source:   query [?? x 5]
# Database: sqlite 3.8.6 [test.sqlite]
# 
#    Sepal.Length Sepal.Width Petal.Length Petal.Width Species
#           <dbl>       <dbl>        <dbl>       <dbl>   <chr>
# 1           5.1         3.5          1.4         0.2  setosa
# 2           4.9         3.0          1.4         0.2  setosa
# 3           4.7         3.2          1.3         0.2  setosa
# 4           4.6         3.1          1.5         0.2  setosa
# 5           5.0         3.6          1.4         0.2 …
Run Code Online (Sandbox Code Playgroud)

sqlite r dplyr

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

ggplot`facet_grid`标签被切断了

ggplot使用facet_grid(..., space = "free_y")和组内的点数较小时,小平面标题会被切断.

例如...

library(tidyverse)

d <- tibble(
  x = factor(1:40),
  y = rnorm(40),
  g = c(rep("GROUP 1", 39), "GROUP 2")
)

ggplot(d) +
  aes(x = x, y = y) +
  geom_col() +
  facet_grid(g ~ ., scales = "free_y", space = "free_y") +
  coord_flip() +
  theme(
    strip.text.y = element_text(angle = 0, size = rel(4))
  )
Run Code Online (Sandbox Code Playgroud)

ggplot与facet strip文本截止

有没有办法让GROUP 2文本不在截面网格边缘被截断?我知道我可以扩展情节,但这并不是一个令人满意的解决方案 - 毕竟,各个方面之间存在所有边距!有没有办法让标签流血到那些?

r ggplot2

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

仅为重要的拟合绘制geom_smooth

我怎样才能制作ggplot情节geom_smooth(method ="lm"),但前提是它符合某些标准?举例来说,如果我只想画线,如果斜率是统计学显著(即plm拟合小于0.01).

编辑:更新为涉及facet的更复杂的示例.我没有从头开始生成数据,而是修改了diamonds数据集.

library(ggplot2)
library(data.table)

data(diamonds)

set.seed(777)
d <- data.table(diamonds)
d[color %in% c("D","E"), c("x","y") := list(x + runif(1000, -5, 5),
                                            y + runif(1000, -5, 5))] 
plt <- ggplot(d) + aes(x=x, y=y, color=color) + 
    geom_point() + facet_grid(clarity ~ cut, scales="free")
plt + geom_smooth(method="lm")
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我想要的是绘制除了那些没有统计上显着斜率(即D和E)的线以外的所有线的方法.

statistics r ggplot2

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

有效地在数组上“应用”并保留结构

我有一个矩阵数组。

dims <- c(10000,5,5)
mat_array <- array(rnorm(prod(dims)), dims)
Run Code Online (Sandbox Code Playgroud)

我想solve对每个矩阵执行基于矩阵的操作(例如通过函数求逆),但保留数组的完整结构。

到目前为止,我提出了 3 个选项:

选项 1:一个循环,它完全符合我的要求,但笨重且效率低下。

mat_inv <- array(NA, dims)
for(i in 1:dims[1]) mat_inv[i,,] <- solve(mat_array[i,,])
Run Code Online (Sandbox Code Playgroud)

选项 2:该apply函数更快、更清晰,但将每个矩阵压缩为一个向量。

mat_inv <- apply(mat_array, 1, solve)
dim(mat_inv)
[1]    25 10000
Run Code Online (Sandbox Code Playgroud)

我知道我可以设置输出维度以匹配输入的维度,但是我很担心这样做会弄乱索引,特别是如果我必须在不相邻的维度上应用(例如,如果我想在维度 2 上反转) )。

选项 3:包中的aaply函数plyr,它完全符合我的要求,但比其他函数慢得多(4-5 倍)。

mat_inv <- plyr::aaply(mat_array, 1, solve)
Run Code Online (Sandbox Code Playgroud)

是否有任何选项可以将 的速度base::apply与 的多功能性相结合plyr::aaply

arrays r matrix dimension

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

使用Pandoc从Markdown转换为LaTex时,倾斜N

我有一个markdown文档,可以通过pandoc的乳胶引擎将其转换为PDF。我正在尝试在其上使用波浪号来渲染n,如“niño”中所示,其降价幅度如下所示:

ni\~{n}o
Run Code Online (Sandbox Code Playgroud)

...但是这只是在PDF中呈现为“ ni〜no”-即波浪号会按字面意义进行解释。我还尝试过转义反斜杠(ni\\~{n}o),将所有内容括在方括号(ni{\~{n}}o)中,基本上我认为按此顺序转义字符的每种可能组合都可以,但是没有任何效果。即使序列是单独的(即\~{n}),它也将失败。

但是,其他基于字母而不是符号的类似序列也可以正常工作(例如Otter\r{a},正确呈现给“Otterå”)。Pandoc特别无法处理波浪号(或更一般地说,不是基于非字母的乳胶字符序列-我没有测试其他字符)。

我用来构建pdf的命令是pandoc file.md -o file.pdf。我也尝试指定-f markdown+raw_tex,但是它仍然失败(我也不需要这样做,因为\r{a}没有它的工作,我认为raw_tex默认情况下是启用的)。

有什么想法吗?我知道我可以使用xetex直接输入这些字符,但这并不是一个令人满意的解决方案...

markdown latex pandoc

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

标签 统计

r ×4

ggplot2 ×2

arrays ×1

dimension ×1

dplyr ×1

latex ×1

markdown ×1

matrix ×1

pandoc ×1

sqlite ×1

statistics ×1