我正在尝试分析存储在 R 和 Mac 上的 SQL 数据库(MS SQL 服务器)中的数据。典型的查询可能会返回几 GB 的数据,而整个数据库只有几 TB。到目前为止,我一直在使用 R 包odbc,它似乎工作得很好。
不过,dbFetch()好像真的很慢。例如,一个有点复杂的查询在大约 6 分钟内在 SQL 服务器中返回所有结果,但如果我运行它odbc然后尝试dbFetch,需要将近一个小时才能将完整的 4 GB 放入 data.frame。我试过分块获取,这有助于适度:https : //stackoverflow.com/a/59220710/8400969。我想知道是否有另一种方法可以更快地将数据通过管道传输到我的 mac,我喜欢这里的思路:快速读取非常大的表作为数据帧
dbFetch当查询的结果是几GB的数据时,有哪些加速的策略?如果问题是data.frame从较大的表生成对象,是否可以通过以不同方式“获取”来节省成本?还有其他可能有帮助的软件包吗?
感谢您的想法和建议!
我有一个形状文件,my_sf. 如果我写:
ggplot() +
geom_sf(
data = my_sf,
size = 0.5 # this is the default value actually
)
Run Code Online (Sandbox Code Playgroud)
然后就可以正常工作了。但是,如果我my_line_width向 中添加一个属性my_sf,并将该列中的每个值设置为 0.5,然后写入:
ggplot() +
geom_sf(
data = my_sf,
aes(size = my_line_width)
)
Run Code Online (Sandbox Code Playgroud)
然后我得到一堆巨大的线条,它们可怕地重叠。如果正常线条的宽度为 0.5,那么这些线条的宽度可能为 4。我不明白为什么它们不会产生相同的结果(除了图例,我知道只有在您使用美学时才会弹出图例)。有谁知道发生了什么事吗?
我也尝试过使用lwd而不是size. 完全相同的事情发生了:当我只是设置一个静态值时没问题,但是当我尝试通过美学提供值时,就会出错。
在我的计算机上运行时,devtools::check()我可以使用 .bib 文件的绝对路径强制构建我的包,而不会出现错误。但由于我将所有引用都包含在包 vignette 中,并尝试指向包含所有 bibtex 引用的 .bib 文件,所以我还没有获得使用 GitHub Actions 构建的包(其中绝对路径没有意义)。我正在寻求有关如何指向 vignette 的 YAML 标头中的 .bib 文件的建议。
目录中 .bib 文件的位置inst/允许我使用包的 .Rd 文档中的引用(如此处建议的: https: //geobosh.github.io/Rdpack/#org88fb0a7),所以我最感兴趣在让我引用该位置的文件而不是将其保存在备用目录中的解决方案中。
我的 YAML 标头内容如下:
---
title: "Using_my_package"
output: rmarkdown::html_vignette
bibliography: "where/I/keep/my/package/inst/REFERENCES.bib"
latex_engine: xelatex
vignette: >
%\VignetteIndexEntry{Using_my_package}
%\VignetteEngine{knitr::rmarkdown}
%\VignetteEncoding{UTF-8}
%\SweaveUTF8
---
Run Code Online (Sandbox Code Playgroud)
我也尝试过
bibliography: `'r system.file("inst", "REFERENCES.bib", package="mypackage")`'`
Run Code Online (Sandbox Code Playgroud)
如何在 YAML 标头中使用相对路径,以便可以从任何位置构建小插图?
当尝试编织我的 rmd 文件时,我收到此错误 -
! LaTeX Error: Unicode character ^^[ (U+001B)
not set up for use with LaTeX.
Error: LaTeX failed to compile Task1-Final.tex. See
https://yihui.org/tinytex/r/#debugging for debugging tips. See Task1-Final.log for
more info.
Execution halted
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?