两个问题涉及boxplot:
na.action?文档没有列出它们.假设我正在调用函数PackageFuncA,它存在于第三方包(即来自CRAN的库)中.PackageFuncA依次在同一个第三方包中调用PackageFuncB.有没有办法调用PackageFuncA,这样当它调用PackageFuncB时,它实际上会调用我自己的PackageFuncB?换句话说,我可以拦截对PackageFuncB的调用吗?
我认为解决方案涉及创建我自己的PackageFuncB函数,然后在相同的环境而不是PackageFuncA的环境中调用PackageFuncA,但我无法使用do.call或eval.
什么... = ...意思作为函数参数?我在一些R源代码中看到了这一点.我明白这...是额外的论点,但不确定等于什么?
我可以教Notepad ++它应该在看到多行注释时应用折叠,其中注释以井号开头,多行注释是连续行上的哈希标记吗?
# This is a comment
# It continues on the next line
# and the next
# I want to fold this block
Run Code Online (Sandbox Code Playgroud)
编辑
我向R lexer提交了一个修复程序以支持多行注释.它包括对源代码的修复以及为那些渴望使用此功能的人编译的SciLexer.dll.只需将NPP文件夹中的SciLexer.dll替换为附加到该错误的文件夹:https://sourceforge.net/tracker/?func = enter&aid = 3485870&group_id = 95717 &atid
= 612385
让我们抓住环境"命名空间:统计数据"和"包:统计数据"
ns = getNamespace( "stats" )
pkg = as.environment( "package:stats" )
Run Code Online (Sandbox Code Playgroud)
现在让我们在两者中获得"sd"函数:
nsSd = get( "sd" , envir = ns , inherits = FALSE )
pkgSd = get( "sd" , envir = pkg , inherits = FALSE )
Run Code Online (Sandbox Code Playgroud)
它们是一样的吗?他们是!但"同样"是什么意思呢?参考或价值平等?
identical( nsSd , pkgSd )
Run Code Online (Sandbox Code Playgroud)
这意味着引用相等,因为以下返回FALSE:
test1 = function() {}
test2 = function() {}
identical( test1 , test2 )
Run Code Online (Sandbox Code Playgroud)
但如果这是真的,那就意味着Environment的框架可以包含函数指针和函数对象.使问题进一步复杂化的是,函数可以在一个环境中"生存",但可以告诉函数其执行环境是另一个环境.钱伯斯SoDA似乎没有答案(它是一本密集的书,也许我错过了!)
所以,我想要一个明确的答案.以下哪项是正确的?或者这里是否有错误的三分法?
nsSd并且pkgSd是两个不同的对象(尽管是彼此的副本),其中对象pkgSd具有ns作为其执行环境nsSd并pkgSd指向同一个对象. nsSd是一个指针,pkgSd因此它们被视为相同是否有一个设置告诉Excel停止将空白处理为零?
我不是在寻找一种解决方法,=IsBlank()而是一种关闭blank-> 0功能的通用设置.
我有R代码(使用ggplot2)将一堆图表抽出为PDF,我对布局感到满意.我只想拍一个体面的标题页,这只是一些中心文本.Google似乎为Sweave提供了很多支持 - 除了工作流程对我来说真的很奇怪(即将我的R嵌入sweave,从R中运行sweave).此外,我不想登上一堆新程序来实现这一目标.此外,我有大量的R代码生成图表,我很满意控制流(即运行r脚本,r脚本将图写入pdf).理想情况下,我只想将标题页打印到PDF,打印我的图,关闭设备,然后每天调用它.我该怎么做?
我知道我可以订购data.frame:
test = data.frame(A=c(4,2,4), B=c(8,3,2))
ordered = test[with( test, order(A,B)) , ]
Run Code Online (Sandbox Code Playgroud)
但是当列名作为字符变量指定列时,如何完成相同的操作?这似乎不起作用:
test = data.frame(A=c(4,2,4), B=c(8,3,2))
cols = c( "A" , "B" )
ordered = test[ with( test, order(cols )) , ]
Run Code Online (Sandbox Code Playgroud)
有没有办法将"B"转换为B,以便识别该列?我似乎经常使用带有列名输入的函数来解决这个问题.是否有一些术语来描述R中的这个问题空间(字符标识符与非字符标识符)?
我已经阅读了parent.env()的文档,看起来相当简单 - 它返回了封闭的环境.但是,如果我使用parent.env()来处理封闭环境链,我会看到一些我无法解释的东西.首先,代码(摘自"R简而言之")
library( PerformanceAnalytics )
x = environment(chart.RelativePerformance)
while (environmentName(x) != environmentName(emptyenv()))
{
print(environmentName(parent.env(x)))
x <- parent.env(x)
}
Run Code Online (Sandbox Code Playgroud)
结果如下:
[1] "imports:PerformanceAnalytics"
[1] "base"
[1] "R_GlobalEnv"
[1] "package:PerformanceAnalytics"
[1] "package:xts"
[1] "package:zoo"
[1] "tools:rstudio"
[1] "package:stats"
[1] "package:graphics"
[1] "package:utils"
[1] "package:datasets"
[1] "package:grDevices"
[1] "package:roxygen2"
[1] "package:digest"
[1] "package:methods"
[1] "Autoloads"
[1] "base"
[1] "R_EmptyEnv"
Run Code Online (Sandbox Code Playgroud)
我们如何解释顶部的"基础"和底部的"基础"?另外,我们如何解释"package:PerformanceAnalytics"和"imports:PerformanceAnalytics"?没有前两行,一切看起来都是一致的.也就是说,函数chart.RelativePerformance在包中:PerformanceAnalytics环境由xts创建,它由zoo创建,......一直向上(或向下)到base和空环境.
此外,文档对此并不十分清楚 - "封闭环境"是创建另一个环境的环境,因此行走的parent.env()显示了"创建"链?
编辑
无耻的插件:我写了一篇博文,用直观的图解释环境,parent.env(),附件,命名空间/包等.