小编Ben*_*ker的帖子

如何在Eclipse中调试R包(使用C和C++代码)?

在Visual Studio中,我们可以使用"附加到进程"来调试DLL.

有没有办法在Eclipse/StatET 中调试 R包的C/C++代码(例如调试链接到Scilab的外部代码的示例)?

c++ eclipse debugging r statet

16
推荐指数
1
解决办法
841
查看次数

从线性模型绘制交互效果的最佳方法

为了帮助填充R标签,我发布了一些我经常从学生那里收到的问题.多年来,我已经对这些问题提出了自己的答案,但也许还有更好的方法,我不知道.

问题:我只是跑了一个回归连续yx,但因子f(如levels(f)生产c("level1","level2"))

 thelm <- lm(y~x*f,data=thedata)
Run Code Online (Sandbox Code Playgroud)

现在我想绘制的预测值yx由定义的组分解f.我得到的所有情节都是丑陋的,显示的线条太多了.

我的回答:试试这个predict()功能.

##restrict prediction to the valid data 
##from the model by using thelm$model rather than thedata

 thedata$yhat <- predict(thelm,
      newdata=expand.grid(x=range(thelm$model$x),
                          f=levels(thelm$model$f)))

 plot(yhat~x,data=thethedata,subset=f=="level1")
 lines(yhat~x,data=thedata,subset=f=="level2")
Run Code Online (Sandbox Code Playgroud)

是否有其他想法(1)对于新手更容易理解和/或(2)从其他角度更好?

interaction regression r

15
推荐指数
1
解决办法
3万
查看次数

构造quines(自我复制功能)

是否有人在R中构建了一个quine("一个程序,它生成一个自己的源文本副本作为其完整输出":http://www.nyx.net/~gthompso/quine.htm)?([quine]标签在Python,Java中提取了大量示例......但在R中显然没有.)

f <- function() { body() }
Run Code Online (Sandbox Code Playgroud)

接近:

> f()
{
    body()
}
Run Code Online (Sandbox Code Playgroud)

但缺少功能的名称.

最短的可能性怎么样?大多数混淆了吗?

编辑:从下面的各种答案中,似乎有多种方法来定义自我指涉性和必须发生的环境:

  • 在R环境中:函数->函数(@ bill_080)
  • 在OS/shell环境中:程序->程序[或多或少等同于程序->文本] :( @kohske)
  • 其他:功能->文本(@JoshUlrich,@ James,上面定义的问题)

笔记:

  • 从R-帮助线程指出的@Spacedman(这似乎强调了简洁混淆)认为identical(quine,quine())是一个很好的测试案例,虽然它的棘手,因为环境相处携带:identical(quine,quine(),ignore.environment=TRUE)可能会更容易.
  • 最近(2015年10月)的博客文章提供了另一个答案......

r quine

15
推荐指数
3
解决办法
502
查看次数

如何计算时间序列的一阶导数

我将使用两个变量计算时间序列的一阶导数(dpH/dtime),timepH.

在R中是否有任何类型的函数可以执行此操作,还是应该计算额外的函数来执行此操作?

r derivative

15
推荐指数
2
解决办法
3万
查看次数

为什么var()函数给出的答案与我计算的方差不同?

我不确定这应该是在SO还是其他一些.SE,所以如果这被认为是偏离主题我会删除.

我有一个向量,我正在尝试使用以下等式"手动"计算方差(意味着基于方差的定义,但仍在R中执行计算):V[X] = E[X^2] - E[X]^2其中E[X] = sum (x * f(x))E[X^2] = sum (x^2 * f(x))

但是,我计算的方差与var()R具有的函数不同(我用来检查我的工作).为什么var()功能不同?它是如何计算方差的?我已经多次检查了我的计算,所以我对我计算的值非常有信心.我的代码如下.

vec <- c(3, 5, 4, 3, 6, 7, 3, 6, 4, 6, 3, 4, 1, 3, 4, 4)
range(vec)
counts <- hist(vec + .01, breaks = 7)$counts
fx <- counts / (sum(counts)) #the pmf f(x)
x <- c(min(vec): max(vec)) #the values of x
exp <- sum(x * fx) ; exp #expected value of x …
Run Code Online (Sandbox Code Playgroud)

r variance

15
推荐指数
2
解决办法
3万
查看次数

R的sum()和Armadillo的accu()之间的差异

当给出相同的输入时,R sum()函数和RcppArmadillo accu()函数的结果存在细微差别.例如,以下代码:

R:

vec <- runif(100, 0, 0.00001)
accu(vec)
sum(vec)
Run Code Online (Sandbox Code Playgroud)

C++:

// [[Rcpp::depends("RcppArmadillo")]]
// [[Rcpp::export]]
double accu(arma::vec& obj)
{
    return arma::accu(obj);
}
Run Code Online (Sandbox Code Playgroud)

给出结果:

0.00047941851844312633(C++)

0.00047941851844312628(R)

根据http://keisan.casio.com/calculator的说法,真正的答案是:

4.79418518443126270948E -4-

这些小的差异在我的算法中加起来并且显着影响它的执行方式.有没有办法在C++中更准确地总结向量?或者至少在不必调用R代码的情况下获得与R相同的结果?

c++ precision r armadillo rcpp

15
推荐指数
2
解决办法
1427
查看次数

R中列表的交集

是否有接收列表的功能x,并返回一个列表y,以便y[[i]] = intersect(x[[1]][[i]], x[[2]][[i]], ...)

如果没有,是否有R方式在几行中编码?

r list set-intersection

14
推荐指数
2
解决办法
9033
查看次数

Fisher测试错误:LDSTP太小

输入

NN <- c(359,32);JJ <- c(108,13);NNS <- c(103,15);VBN <- c(95,9);RB <- c(63,11);NNP <- c(56,0);VBG <- c(55,10);IN <- c(38,16);VB <- c(20,10);CD <- c(17,6);CC <- c(11,6);DT <- c(11,4);MD <- c(8,5);PRP4 <- c(8,1);PRP <- c(7,4);FW <- c(5,1);VBD <- c(5,3);RBR <- c(4,0);VBP <- c(4,1);VBZ <- c(4,3);WRB <- c(4,2);EX <- c(3,1);NNPS <- c(2,0);WDT <- c(2,3);WP <- c(2,1);PDT <- c(1,1);POS <- c(1,0);RBS <- c(1,0);TO <- c(1,1);UH <- c(0,1)
Finaltable <-
cbind(NN,JJ,NNS,VBN,RB,NNP,VBG,IN,VB,CD,CC,DT,MD,PRP4,PRP,FW,VBD,RBR,VBP,VBZ,WRB,EX,NNPS,WDT,WP,PDT,POS,RBS,TO,UH)
rownames(Finaltable) <- c("tag1","tag2")
Finaltable

chisq.test(Finaltable)


fisher.test(Finaltable)
Run Code Online (Sandbox Code Playgroud)

产量

fisher.test(Finaltable) : FEXACT error 7.
LDSTP is too …
Run Code Online (Sandbox Code Playgroud)

testing statistics r chi-squared

14
推荐指数
1
解决办法
2万
查看次数

双重百分号(%%)是什么意思?

%%R中使用的双倍百分比()是多少?

从使用它开始,它看起来好像它将前面的数字除以它后面的数字尽可能多的次数并返回左边的值.那是对的吗?

出于好奇,这什么时候有用?

r

14
推荐指数
2
解决办法
2万
查看次数

在 Ubuntu 上安装软件包需要很长时间

我使用 Windows 作为操作系统,RStudio 用于 Windows,今天切换到 Ubuntu 并再次安装了 R 和 RStudio。tidyverse当我尝试使用 CRAN(仅!)安装一些软件包时install.packages()从 CRAN 安装一些软件包时,我在控制台上看到了一些我在 Windows 上从未见过的东西,它看起来像这样;

\n
* installing *source* package \xe2\x80\x98data.table\xe2\x80\x99 ...\n** package \xe2\x80\x98data.table\xe2\x80\x99 successfully unpacked and MD5 sums checked\n** using staged installation\ngcc -std=gnu99 9.3.0\nzlib 1.2.11 is available ok\nOpenMP supported\n** libs\ngcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG     -fopenmp -fpic  -g -O2 -fdebug-prefix-map=/build/r-base-5iUtQS/r-base-4.0.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -g  -c assign.c -o assign.o\ngcc -std=gnu99 -I"/usr/share/R/include" -DNDEBUG     -fopenmp -fpic  -g -O2 -fdebug-prefix-map=/build/r-base-5iUtQS/r-base-4.0.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -g  -c between.c -o …
Run Code Online (Sandbox Code Playgroud)

installation r

14
推荐指数
1
解决办法
4769
查看次数