小编Jor*_*eys的帖子

集成C++代码的软件包开发的IDE /设置

我试图抓住C++/Rcpp作为R的扩展,用于繁重的计算任务.最终,这些C++库应该集成在一个包中,因此我正在寻找一个我需要轻松工作的工具/ IDE的设置/组合.我知道很多都是依赖于味道的,但在选择之前知道我的选择仍然会很好.

那么:当您使用C++库开发R包时,您使用的设置是什么?

  • 你对R和C++使用相同的编辑器/ IDE以及哪一个(或哪些)?
  • 是否有额外的工具(除了Rtools)是很重要的?
  • 在一般设置中是否有调整对于了解或加速该过程非常重要?

对不起,如果之前已经问过这个问题.我找到了R的所有编辑器的列表,但没有专门针对开发包括C++代码的包.任何提示或技巧都非常感谢.

编辑:平台是Windows,但我可以毫无问题地移动到Linux(双启动,只有让我不使用ubuntu的东西是我的旧卡/旧屏幕组合缺乏一个像样的驱动程序)

c++ ide r package rcpp

8
推荐指数
1
解决办法
803
查看次数

在R中的引用类的initialize()方法中自动赋值

我正在使用一个带有几十个字段的引用类.我已经设置了一个initialize()采用列表对象的方法.虽然有些字段依赖于列表元素的进一步计算,但大多数字段都是从列表元素直接分配的:

fieldA <<- list$A
fieldB <<- list$B
Run Code Online (Sandbox Code Playgroud)

我当时觉得自动化这个很好.举一个R伪代码的例子(这个例子显然不起作用):

for (field in c('A', 'B', 'C', 'D'))
   field <<- list[[field]]
Run Code Online (Sandbox Code Playgroud)

我已经尝试过几次结束运行<<-,例如:

for field in c('A', 'B', 'C', 'D'))
  do.call('<<-' c(field, list[[field]])) 
Run Code Online (Sandbox Code Playgroud)

但没有骰子.

我的猜测是,在目前的参考类化身中,这种行为根本不可能,但是认为在SO土地上有人知道有更好的方法可以做到这一点可能是值得的.

r reference-class

8
推荐指数
1
解决办法
2355
查看次数

所有连接都在使用中:执行暂停

getYahooData()TTR包中使用功能非常强烈.

我有这段代码:

for(i in 1:nrow(symbol)){
    tryCatch(prices <- getYahooData(symbol$symbol[i], from, to, freq="daily", 
                                    type="price"), 
             warning=function(e) continue <- 0)
    if (continue==0) next
}
Run Code Online (Sandbox Code Playgroud)

这个循环很长我得到这个错误:

文件错误(文件,"rt"):所有连接都在使用中调用:tryCatch ... doTryCatch - > getYahooData - > getYahooData - > read.table - > file执行暂停

我能做什么?

更新:

如果我使用closeAllConnections(),我得到:

 I get: *** caught segfault *** address (nil), cause 'memory not mapped' Traceback: 1: getConnection(set[i]) 2: close(getConnection(set[i])) 3: closeAllConnections() aborting ... 
Run Code Online (Sandbox Code Playgroud)

error-handling r try-catch

8
推荐指数
3
解决办法
7377
查看次数

在ggplot找不到的函数内创建的对象

我为我生成ggplots的许多站点提供了一系列时间序列数据,显示了使用changepoint包的方法的变化.我编写了一个函数,它接受csv,执行一些计算以获得方法然后遍历站点,为每个站点生成一个图.我的问题是找不到在for循环中创建的对象.

下面是一个非常简单的示例,但会产生相同的错误:

df1 <- data.frame(date = seq(as.Date("2015-01-01"), as.Date("2015-01-10"),
                         by = "day"),
              site1 = runif(10),
              site2 = runif(10),
              site3 = runif(10))

example <- function(df1){

    sname <- names(df1)[-1]

    for (i in 1:length(sname)){
            df2 <- df1[,c(1, 1+i)]
            df2$label <- factor(rep("ts", by=length(df2[,1])))

            plot <- ggplot()+
                    geom_point(data=df2, aes(x=date, y=df2[,2]))+
                    geom_line(data=df2, aes(x=date, y=df2[,2]))
            sname.i<-sname[i]
            filename<-paste0(sname.i, "-test-plot.pdf")
            ggsave(file=filename, plot)
    }
}

example(df1)
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:"eval中的错误(expr,envir,enclos):找不到对象'df2'"

我不太确定问题是什么,因为我创建了类似的循环,这些循环在过去有效.如果我为i分配一个值并循环遍历循环中的代码,它可以正常工作.我在想环境问题?还是ggsave在做什么呢?感激地收到任何帮助/指针.谢谢.

for-loop r function ggplot2

8
推荐指数
1
解决办法
2238
查看次数

Shiny R - 下载表格的结果

我是Shiny的新手,我创造了一个非常简单的闪亮应用程序:

library(shiny)

ui <- fluidPage(
  fluidRow(column(7,dataTableOutput('dto')))
)

server <- function(input,output){

  output$dto <- renderDataTable({MYTABLE})


}

runApp(list(ui=ui,server=server))
Run Code Online (Sandbox Code Playgroud)

有没有办法放一个选项来下载表的结果(如果是CSV,XLSX则无关紧要......)

干杯

r download shiny

8
推荐指数
2
解决办法
8893
查看次数

在LaTeX中编写类和样式文件的教程/手册?

我搜索了网络和stackoverflow,发现了一些很棒的LaTeX资源,但我找不到任何关于编写自己的类和样式文件的体面手册.我遇到的一些问题是代码的哪一部分应该在类文件中,哪个在样式文件中,如何微调宏,如何定义和使用变量,......

我通过查看其他人的代码来解决一些问题,但我想有一些全面的概述.我应该看看哪些想​​法?

PS:我已经对乳胶进行了不那么简短的介绍,介绍了beamer和latex教程 - 一本入门书.这些都没有回答我的问题.

macros latex coding-style class manual

7
推荐指数
0
解决办法
5854
查看次数

如何使用指定的列顺序保存对R中的数据框进行排序?

假设我有一个data.frame

x <- data.frame(a = c('A','A','A','A','A', 'C','C','C','C', 'B','B','B'),
                b = c('a','c','a','a','c', 'd', 'e','e','d', 'b','b','b'),
                c = c( 7,  3,  2,  4,  5,   3,   1,  1,  5,   5,  2,  3),
                stringsAsFactors = FALSE)

> x
   a b c
1  A a 7
2  A c 3
3  A a 2
4  A a 4
5  A c 5
6  C d 3
7  C e 1
8  C e 1
9  C d 5
10 B b 5
11 B b …
Run Code Online (Sandbox Code Playgroud)

sorting r dataframe

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

R使用ifelse和eval组合的行为

免责声明:这段代码是不好的做法.,只会因为类似bug的东西而起作用.切勿在真实情况下使用它.这个问题是关于R的有趣行为,没有别的.

看完这个问题后,我非常困惑.显然,ifelse可以访问应该隐藏的信息.

说我们这样做:

> x <- expression(dd <- 1:3)    
> y <- expression(dd <- 4:6)    
> z <- c(1,0)

> eval(x)
> eval(y)
>
Run Code Online (Sandbox Code Playgroud)

我们没有输出.逻辑,因为两个表达式实际上是向量dd的赋值.eval()不应该给出输出.但奇怪的是,当你尝试有趣的代码时

> ifelse(z==0,eval(x),eval(y))
[1] 4 2
Run Code Online (Sandbox Code Playgroud)

你得到输出??? 有人对此有解释吗?

它并不像"R评估然后使用dd"那么简单.无论你给z什么顺序,无论你使用什么条件,dd总是最后提到的eval().

> ifelse(z==0,eval(x),eval(y))
> dd
[1] 4 5 6

> ifelse(z==1,eval(x),eval(y))
> dd
[1] 4 5 6

> z <- c(0,1)
> ifelse(z==0,eval(x),eval(y))
> dd
[1] 4 5 6

> ifelse(z==1,eval(x),eval(y))
> dd
[1] 4 5 6

> ifelse(z==1,eval(y),eval(x))
> dd …
Run Code Online (Sandbox Code Playgroud)

if-statement eval r

7
推荐指数
1
解决办法
453
查看次数

如何使用scala作为脚本语言设置jsr223脚本

到目前为止,我已经为scala尝试了jsr223脚本的sling实现,但是无法正确设置它.当我这样做:

public static void main(String[] args) {
    try {
        new ScriptEngineManager().getEngineByName("scala").
          eval("object HelloWorld {def main(args: Array[String]) { 
                  println(\"Hello, world!\") }}");
    } catch (ScriptException e) {
        e.printStackTrace();
    }
}
Run Code Online (Sandbox Code Playgroud)

我什么也没得到:

javax.script.ScriptException: ERROR 
org.apache.sling.scripting.scala.Script line 13 : not found: type 
Script at org.apache.sling.scripting.scala.ScalaScriptEngine.eval(ScalaScriptEngine.scala:117)
    at javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:247)
Run Code Online (Sandbox Code Playgroud)

类似的问题在这里讨论:http: //scala-programming-language.1934581.n4.nabble.com/How-to-compile-Scala-code-from-java-using-the-current-ClassLoader-instead-of-一个字符串为基础,classpat-td1955873.html#a1955873

http://dev.day.com/discussion-groups/content/lists/sling-dev/2009-12/2009-12-01_Scala_scripting_support_was_Re_And_another_one____Michael_D_rig.html

也许还有另一个我不知道的实现.

任何帮助赞赏

java scala scripting-language jsr223

7
推荐指数
1
解决办法
3745
查看次数

Makefile ifeq问题

我试图在我的规则模式中使用ifeq并且我遇到了问题.这是我遇到麻烦的规则:

$(OBJS): $(OBJDIR)/%.o : ../%.c
    @mkdir -p $(dir $@)
    ifeq(mcc.exe,$(CC))
        o_file:=$(shell echo $@ | sed -e 's/\/cygdrive\///' | sed -e 's/\([a-zA-Z]\)/\1:/')
        $(CC) $(CFLAGS) $< -o $(o_file)
    else
        $(CC) $(CFLAGS) $< -o $@
    endif
Run Code Online (Sandbox Code Playgroud)

当我运行这个时,我得到:

"/bin/sh: -c: line 0: syntax error near unexpected token `mcc.exe,mcc.exe'
/bin/sh: -c: line 0: `ifeq(mcc.exe,mcc.exe)'"
Run Code Online (Sandbox Code Playgroud)

但是,当我不使用indention时,我得到:"Makefile:77:*缺少分隔符.停止."

我在Cygwin上使用GNU make 3.81.ifeq的整个问题来自于我有两个工具链的相同Makefile,其中一个(mcc.exe)无法处理/cygdrive/c/.../something路径,但应该有c: /.../something路径.如果您知道其他任何解决方法,我也将非常感激!

先感谢您!

cygwin makefile path

7
推荐指数
1
解决办法
7184
查看次数