我正在写使用一些有用的功能像其他一些包R里面的函数stringr和base64enc.是不是首先要调用library(...)或者require(...加载这些包,而是::用来直接引用我需要的函数,比如stringr::str_match(...)?
在一般情况下这是一个好习惯吗?或者它会引起什么问题?
我在R命名的全局环境中加载了一个巨大的数据框df.如何重命名数据框而不复制数据框,方法是将其分配给另一个符号并删除原始符号?
请考虑以下列表:
> l1 <- list(NULL,1,2,list(NULL,3,list(NULL,4)))
> str(l1)
List of 4
$ : NULL
$ : num 1
$ : num 2
$ :List of 3
..$ : NULL
..$ : num 3
..$ :List of 2
.. ..$ : NULL
.. ..$ : num 4
Run Code Online (Sandbox Code Playgroud)
要从NULL第一级删除值,只需调用即可
l1[vapply(l1,is.null,logical(1L))] <- NULL
Run Code Online (Sandbox Code Playgroud)
现在我想删除所有NULL级别的所有值,我想出了以下代码.
list.clean <- function(.data, fun = is.null, recursive = FALSE) {
if(recursive) {
.data <- lapply(.data, function(.item) {
if(is.list(.item)) list.clean(.item, fun, TRUE)
else .item
})
}
.data[vapply(.data,fun,logical(1L))] …Run Code Online (Sandbox Code Playgroud) 我的应用程序从远程服务器接收数据并调用ReplaceOne插入新文件或用给定密钥替换现有文档Upsert = true.(密钥是匿名的*)代码只在一个线程中运行.
但是,偶尔,应用程序崩溃时出现以下错误:
Unhandled Exception: MongoDB.Driver.MongoWriteException: A write operation resulted in an error.
E11000 duplicate key error collection: ****.orders index: _id_ dup key: { : "****-********-********-************" } ---> MongoDB.Driver.MongoBulkWriteException`1[MongoDB.Bson.BsonDocument]: A bulk write operation resulted in one or more errors.
E11000 duplicate key error collection: ****.orders index: _id_ dup key: { : "****-********-********-************" }
at MongoDB.Driver.MongoCollectionImpl`1.BulkWrite(IEnumerable`1 requests, BulkWriteOptions options, CancellationToken cancellationToken)
at MongoDB.Driver.MongoCollectionBase`1.ReplaceOne(FilterDefinition`1 filter, TDocument replacement, UpdateOptions options, CancellationToken cancellationToken)
--- End of inner …Run Code Online (Sandbox Code Playgroud) 这是一个R列表:
list1 <- list(var1=1,var2=list(var21=1,var22=2,var23=list(var231=1,var232=0)))
Run Code Online (Sandbox Code Playgroud)
这是另一个R列表:
list2 <- list(var1=3,var2=list(var22=0,var23=list(var232=1,var233=2)),var3=list(var31=1))
Run Code Online (Sandbox Code Playgroud)
现在我想更新list1的list2,其中应包括更新现有的值,并引进新的价值.其结果是var1,var22,var232应更新为指定的值list2,并且var233,var3,var31应引入新的条目.因此,更新的列表应该是:
list(var1=3,var2=list(var21=1,var22=0,var23=list(var231=1,var232=2,var233=2)),var3=list(var31=1))
Run Code Online (Sandbox Code Playgroud)
它与默认设置和用户特定设置非常相似.应通过用户特定设置加载和更新默认设置.在我的使用中,我只是从JSON文件(default.json)创建一个R列表作为默认设置,并希望通过另一个JSON文件(user.json)生成的另一个列表更新默认设置,就像许多程序一样.
是否有现成的包或一些简单/体面的方式来做到这一点?
在R中允许用户定义的运算符,但似乎只% %接受类似运算符.是否有可能绕过这个限制来定义运算符,例如>>,或者不喜欢的东西% %?
操作员必须是真正的操作员,以便我们可以像1 >> 2使用它一样使用它">>"(1,2).
假设我有一个用Rcpp编译的C++代码,将在R中调用.
// [[Rcpp::export]]
SEXP to_env(List x) {
if(x.hasAttribute("names"))
{
return x;
}
else
{
return NULL;
}
}
Run Code Online (Sandbox Code Playgroud)
NULL返回R NULL而不是崩溃应该是什么值?
以下是我编写的代码.我无法使用formattable我的光泽.formattable有助于格式化表格并改善可视化效果.
library("shinydashboard")
library("shiny")
library("formattable")
body <- dashboardBody(
fluidRow(
column(width = 12,
box(tableOutput(formattable(test.table, list())))
)
)
)
ui <- dashboardPage(
dashboardHeader(title = "Column layout"),
dashboardSidebar(),
body
)
server <- function(input, output) {
test.table <- data.frame(lapply(1:8, function(x) {1:10}))
output$table <- renderTable({test.table})
}
shinyApp(ui = ui, server = server)
Run Code Online (Sandbox Code Playgroud) 我在Bitbucket.org上放了一个私有存储库,这个项目需要一些涉及大量数学内容的文档.我想使用Bitbucket Wiki并在Markdown中编辑它但是我应该如何启用MathJax以允许我在markdown文件中输入数学方程式?
到位桶的官方文档(https://confluence.atlassian.com/display/BITBUCKET/Use+a+wiki)似乎并没有提到它.我搜索了Google,但发现了一些有用的结果.任何的想法?
在R中,我们可以makeActiveBinding通过提供一个函数来创建一个活动绑定:
e <- new.env()
makeActiveBinding("var",
function(x) if (missing(x)) cat("get\n") else cat("set\n"), e)
Run Code Online (Sandbox Code Playgroud)
一旦创建了活动绑定,似乎无法获得它背后的功能.
我想知道是否有可能获得活动绑定背后的功能,如下所示?
> getActiveBindingFunction("var", e)
function(x) if (missing(x)) cat("get\n") else cat("set\n"), e)
Run Code Online (Sandbox Code Playgroud)