是否有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) 在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)

有没有办法让GROUP 2文本不在截面网格边缘被截断?我知道我可以扩展情节,但这并不是一个令人满意的解决方案 - 毕竟,各个方面之间存在所有边距!有没有办法让标签流血到那些?
我怎样才能制作ggplot情节geom_smooth(method ="lm"),但前提是它符合某些标准?举例来说,如果我只想画线,如果斜率是统计学显著(即p从lm拟合小于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)的线以外的所有线的方法.
我有一个矩阵数组。
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?
我有一个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直接输入这些字符,但这并不是一个令人满意的解决方案...