我想知道哪些函数可以与 RDCOMClient 对象一起使用。
例如,要创建电子邮件,我们可以使用
OutApp <- COMCreate("Outlook.Application")
# create an email
outMail = OutApp$CreateItem(0)
Run Code Online (Sandbox Code Playgroud)
与outMail[["subject"]],outMail[["HTMLbody"]]或outMail[["Attachments"]]$Add(filepath)
但我怎样才能获得一份全面的清单呢?
RDCOMClient 文档已过时,并且列出的功能(例如getFuncs()和 )getElements()在包中不再可用。尝试names()找出引擎盖下的内容没有给我任何结果,并且
install.packages("remotes")
remotes::install_github("omegahat/SWinTypeLibs")
Run Code Online (Sandbox Code Playgroud)
也给出一个错误。关于如何检查 Outlook 中的对象有什么想法吗?
在R中,我与此数据库具有SQL Server连接:
从这个答案,我知道这些水平是catalogs (=databases), schemas, and tables。如下代码:
library(odbc)
library(DBI)
library(RSQlite)
library(dbi)
confull <- odbc::dbConnect(odbc(),
Driver = "SQL Server",
Server = "XXX")
odbcListObjects(confull, schema="schema")
Run Code Online (Sandbox Code Playgroud)
产量:
name type
1 DBAInfo catalog
2 InBluePrism catalog
3 master catalog
4 msdb catalog
5 tempdb catalog
Run Code Online (Sandbox Code Playgroud)
问题:
catalogs?SQLite表中?对于第一个问题,我尝试了以下方法:
> all_schemas <- DBI::dbGetQuery(confull, "SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA")
> all_schemas
SCHEMA_NAME
1 dbo
2 guest
3 INFORMATION_SCHEMA
4 sys
5 CCAutomation
6 XXXXXX\\xxxAdmin
7 XXXXXX\\z_swmon
8 NT …Run Code Online (Sandbox Code Playgroud) 我是 R Markdown 新手。如果我错过了这个问题的明显答案,我深表歉意。
语境:
我正在使用 R Markdown 中的大型数据集(大约 9000 万行)来生成简短的报告。在处理文件格式时,我想经常编织最终的 HTML 文档(例如,在进行更改后)以查看格式。
问题:
问题是数据集需要很长时间才能加载,因此每次编织都需要很长时间才能执行(大约五到十分钟)。我确实需要所有数据,因此加载较小的文件不是一个可行的选择。当然,我能够对各个块进行编码,因为数据已加载到全局环境中,但格式化非常繁重,因为在不查看针织产品的情况下很难可视化格式化更改的结果。
尝试解决问题:
经过一番研究,我发现并尝试使用cache = TRUEand cache.extra = file.mtime('my-precious.csv') (根据 Yihui's Bookdown 的这一部分)。然而,这个选项不起作用,因为它导致了以下结果:
Error in lazyLoadDBinsertVariable(vars[i], from, datafile, ascii, compress, :
long vectors not supported yet: connections.c:6073
Calls: <Anonymous> ... <Anonymous> -> <Anonymous> -> lazyLoadDBinsertVariable
Run Code Online (Sandbox Code Playgroud)
为了克服这个错误,我添加cache.lazy = FALSE了块选项(如此处所述)。不幸的是,虽然代码有效,但编写文档所需的时间并没有减少。
我对这个过程的有限理解是,具有cache = TRUE和cache.extra = file.mtime('my-precious.csv')将导致代码块的执行结果被缓存,以便下次编织文件时,加载上次运行的结果。但是,因为我的文件太大,所以cache = TRUE不起作用,所以我必须使用cache.lazy = FALSE来反转cache = TRUE. 最后,这意味着每次运行文件时数据集都会加载到我的内存中,从而延长了编织文档所需的时间。 …
在 R 中,如何向零行 data.frame 添加列?
我不能df[,'newcol'] <- NULL这样做,c()因为这些语句实际上删除了现有的列。
df <- data.frame(col1=c(1:3), col2=letters[1:3])
df <- df[-c(1:3),]
df[,'newcol'] <- NULL
Run Code Online (Sandbox Code Playgroud) 如何获取当前时间(以毫秒为单位)?我尝试了以下方法但没有成功:
> strptime(Sys.time(), "%Y-%m-%d %H:%M:%OS")
[1] "2022-05-14 19:42:53 CEST
Run Code Online (Sandbox Code Playgroud) 在 R 中,我想检查一个数字是否是另一个数字的倍数。这适用于整数
> 124%%1
[1] 0
> 124%%2
[1] 0
Run Code Online (Sandbox Code Playgroud)
但对于某些神秘的原因不与十进制数字很好地工作,任何想法,为什么1.05%%0.05是不是0?
> 0.05%%0.05
[1] 0
> 1.05%%0.05
[1] 0.05
Run Code Online (Sandbox Code Playgroud) 在 RHEL 上,我有“打开的文件太多”错误。我想重现它,以便我了解究竟是什么导致了它。
cat /proc/sys/fs/file-max给出操作系统级别的最大打开文件。./file-nr给出当前打开的文件数sudo lsof | wc -l是查看当前打开文件数量的另一种方法,尽管它包含此处提到的重复值。ulimit -n 是每个进程的最大打开文件数(对我来说是 1024)sudo lsof -p <PID> | wc -l给出lsof当前进程打开文件数的版本。bash如果可能的话,我会寻求解决方案,这会创建一个ulimit -n仅通过打开虚拟文件来破坏的过程。潜在地,我还想使用其中几个测试过程来突破操作系统限制。
另外我怎样才能正确地杀死这样的进程?谢谢
这将使我能够准确地检查达到了什么限制(file-max或lsof...)并试验导致它的操作类型。
r ×6
bash ×1
caching ×1
com ×1
dataframe ×1
division ×1
knitr ×1
linux ×1
outlook ×1
r-markdown ×1
rdcomclient ×1
sql ×1
sql-server ×1
sqlite ×1
vba ×1