这可能有一个非常简单的答案.如何删除库中的所有数据集?我做了类似的事情
proc datasets library=lib;
delete _all_;
quit;
Run Code Online (Sandbox Code Playgroud)
但这只是试图删除被调用的数据集_all_.我是否必须手动列出delete命令中的所有数据集?
如何获得在给定月份结束且具有给定长度的一系列月度日期?seq(as.Date(*), length, by="month")假定给出了开始日期,而不是结束日期,并且AFAIK by在这种情况下不可能指定负值.
ETA:也就是说,我想要一个跨越给定时间段的序列,但是要指定一个终点而不是起点.所以,像seq(to="2000-03-01", len=3, by="month") --> 2000-01-01, 2000-02-01, 2000-03-01.
我在训练数据上训练随机森林,训练数据有114954行和135列(预测因子).我收到以下错误.
model <- randomForest(u_b_stars~. ,data=traindata,importance=TRUE,do.trace=100, keep.forest=TRUE, mtry=30)
Error: cannot allocate vector of size 877.0 Mb
In addition: Warning messages:
1: In randomForest.default(m, y, ...) :
The response has five or fewer unique values. Are you sure you want to do regression?
2: In matrix(double(nrnodes * nt), ncol = nt) :
Reached total allocation of 3958Mb: see help(memory.size)
3: In matrix(double(nrnodes * nt), ncol = nt) :
Reached total allocation of 3958Mb: see help(memory.size)
4: In matrix(double(nrnodes * nt), ncol = …Run Code Online (Sandbox Code Playgroud) 我需要一些帮助在R中实现HMM模块.我是R的新手并且对它没有太多的了解.所以我必须使用HMM实现一个IE,我有两个文件夹,一个带有句子,另一个带有我希望从每个句子学习的相应标签.
folder1 > event1.txt: "2013 2nd International Conference on Information and Knowledge Management (ICIKM 2013) will be held in Chengdu, China during July 20-21, 2013."
folder2 > event1.txt:
"N: 2nd International Conference on Information and Knowledge Management (ICIKM 2013)
D: July 20-21, 2013
L: Chengdu, China"
N -> Name; D -> Date; L -> Location
Run Code Online (Sandbox Code Playgroud)
我的问题是如何在R上实现它,我如何初始化模型以及如何训练它?然后我如何将它应用于随机句子来提取信息?
在此先感谢您的帮助!
r machine-learning information-extraction hidden-markov-models
我需要一个函数生成器,它接受另一个函数和该函数的任何参数并设置新的默认值.我以为@ hadley pryr::partial是那个神奇的功能.它完全符合我的要求,除非您无法更改新的默认值.所以在这里我可以改变sep我的新paste功能但不是新的默认值collapse = "_BAR_".如何以partial这种方式执行(即默认为collapse = "_BAR_"启用但collapse = NULL如果需要可以设置)?如果这是不可能的,partial有没有办法重写代码partial来执行此操作:https://github.com/hadley/pryr/blob/master/R/partial.r
library(pryr)
.paste <- pryr::partial(paste, collapse = "_FOO_")
.paste(1:5)
.paste(1:5, LETTERS[1:5], sep="_BAR_")
.paste(1:5, collapse=NULL)
> .paste(1:5)
[1] "1_FOO_2_FOO_3_FOO_4_FOO_5"
> .paste(1:5, LETTERS[1:5], sep="_BAR_")
[1] "1_BAR_A_FOO_2_BAR_B_FOO_3_BAR_C_FOO_4_BAR_D_FOO_5_BAR_E"
> .paste(1:5, collapse=NULL)
Error in paste(collapse = "_FOO_", ...) :
formal argument "collapse" matched by multiple actual arguments
Run Code Online (Sandbox Code Playgroud) 这是我编写R-package的第一次经验。我按照此链接http://kbroman.org/pkg_primer/中给出的说明使用了roxygen2
除少数外,Everythig一切正常。.可能有一个更简单的解决方案来解决问题,但我没有发现线索我在做什么错。我希望此博客中的某人可以提供解决方案以解决我的问题。
第一个问题与roxygen2中的{\ code \ link {function-name}}有关:在.R脚本中,我包括以下内容:
#' @seealso \code{\link{s2a}}
Run Code Online (Sandbox Code Playgroud)
在记录(生成.Rd文件)之后,没有到s2a的超链接,在文件s2a中显示的像普通文本一样,而不像超链接.. export(s2a)在NAMESPACE中列出。还有其他需要修改的地方吗?
第二个问题是关于data()的:我将数据集保存为.Rdata格式,并放在包目录中的data /中。我还在R /中创建了.R脚本,如下所示:http://kbroman.org/pkg_primer/pages/data.html
在Description文件LazyData中:true。
但是当我在R控制台中键入data(shh)时会给出警告消息
data(shh)警告消息:在data(shh)中:找不到数据集“ shh”
任何想法都有很大帮助:)
我正在尝试在我们的数据集上运行 LASSO,为此,我需要将非数字变量转换为数字,理想情况下是通过稀疏矩阵。但是,当我尝试使用 Matrix 命令时,出现相同的错误:
Error in asMethod(object) : invalid class 'NA' to dup_mMatrix_as_geMatrix
Run Code Online (Sandbox Code Playgroud)
我认为这是由于我的数据中的 NA,所以我做了一个 na.omit 并得到了同样的错误。我用我的代码的一个小子集再次尝试并再次得到相同的错误:
> sparsecombined <- Matrix(combined1[1:10,],sparse=TRUE)
Error in asMethod(object) : invalid class 'NA' to dup_mMatrix_as_geMatrix
Run Code Online (Sandbox Code Playgroud)
这是我试图用最后一行代码转换的数据集:
是否有任何可能会阻止稀疏转换的跳出?
我的包(让我们称之为A)依赖于另一个包B.我需要修改fB中的一个函数,该函数有一个导致我的包失败的错误.问题是这f是一个未被发布的功能.
如果f导出,我可以使用这篇文章中描述的技术来帮助:
我想要修补这样的函数几次,我使用:
Run Code Online (Sandbox Code Playgroud)unlockBinding(name, env); assignInNamespace(name, value, ns=pkgName, envir=env); assign(name, value, envir=env); lockBinding(name, env);
但由于f未被报道,这不起作用.
举例说明问题:
# rf is an exported function from the stats package; this works
foo <- function(x) x
unlockBinding("rf", as.environment("package:stats"))
assignInNamespace("rf", foo, ns="stats", pos="package:stats")
assign("rf", bar, pos="package:stats")
lockBinding("rf", as.environment("package:stats"))
rf(42)
# 42
# C_rf is an unexported object that rf() uses; this fails
bar <- function(x) x + 1
unlockBinding("C_rf", as.environment("package:stats"))
assignInNamespace("C_rf", bar, ns="stats", pos="package:stats")
assign("C_rf", …Run Code Online (Sandbox Code Playgroud) 考虑这两个函数:
library(Rcpp)
cppFunction("NumericVector func1(NumericVector &x)
{
for (int i = 0; i < x.length(); i++)
x[i] = x[i] * 2;
return x;
}")
cppFunction("NumericVector func2(NumericVector x) // no &
{
for (int i = 0; i < x.length(); i++)
x[i] = x[i] * 2;
return x;
}")
Run Code Online (Sandbox Code Playgroud)
唯一的区别是,func1将其x作为参考参数,而func2将其作为值。如果这是常规的 C++,我会将其理解为func1允许更改调用代码中的值x,而这不会在func2.
然而:
> x <- 1:10/5 # ensure x is numeric, not integer
> x
[1] 0.2 0.4 0.6 0.8 …Run Code Online (Sandbox Code Playgroud) 我有一个 C++ 代码库,我使用 Rcpp 模块将其暴露给 R。具体来说,我使用一种接口模式,其中我公开的类实际上是底层对象(即实现)之上的抽象层。
我正在处理的类也相互交互,并且具有将对象的共享指针作为参数的方法。我无法找出向 R 公开这些方法的正确方法。
例如,这是一些代码。该TestClass::combine方法接受一个指向另一个TestClass对象的指针并用它做一些事情。当我尝试编译此代码时,当我ITestClass::combine向模块添加相应的接口方法时,出现编译器错误(见下文)。
执行:
class TestClass
{
public:
TestClass(int const& n, double const& x)
: n(n), x(x)
{}
const double get_x() {
return x;
}
double combine(std::shared_ptr<TestClass> obj) {
return x + obj->get_x();
}
protected:
int n;
double x;
};
Run Code Online (Sandbox Code Playgroud)
界面:
//' @export ITestClass
class ITestClass
{
public:
ITestClass(int const& in_n, double const& in_x)
: impl(in_n, in_x)
{}
double get_x() {
return impl.get_x();
}
double combine(ITestClass obj) …Run Code Online (Sandbox Code Playgroud)