小编Kar*_* W.的帖子

在没有DOS的情况下启动RScript框(在Windows上)?

对于tcltk应用程序,我想启动R脚本而不打开控制台窗口或启动DOS框。我已经想通了,通过创建指向RScript.exe的链接,可以强制使控制台窗口最小化,但是我想知道是否可以完全避开控制台窗口吗?

r app-startup

5
推荐指数
1
解决办法
1411
查看次数

返回数据集的函数

我想创建一个获取数据集名称和包名称的函数,并将数据集作为data.frame返回.这是我的尝试

loadDataSet <- function(name, pkg) {
      varname <- data(name, package=pkg)
      return(get(varname[[1]]))
    }
loadDataSet("acme", "boot")
Run Code Online (Sandbox Code Playgroud)

但是,此功能失败.问题似乎是,对data()的调用不会查找name变量的值,而是查找"name".

我已经知道如何从变量到其名称,通过deparse(替换(var)).但是我怎么走另一条路,从"var"到var?

任何暗示赞赏!

r dataset dataframe

5
推荐指数
1
解决办法
1497
查看次数

测试表达式是否为函数?

函数如何FunctionQ看起来,也许我甚至可以指定允许的参数数量?

wolfram-mathematica

5
推荐指数
1
解决办法
1542
查看次数

基数R中具有不同符号大小的图例

在我的图表中,我编码了圆形直径的一些信息.我的问题是,在图例中记录这些信息的最简单方法是什么?

这是我到现在为止所尝试的:

dat <- rnorm(100)
cex_brks <- quantile(dat, c(0.25,0.5,0.75))
cex_size <- c(1,1.4,1.8, 2.2) 
cex <- rep(NA, length(dat))
for (i in 1:3) {
    cex[is.na(cex) & dat<=cex_brks[[i]]] <- cex_size[[i]]
}
cex[is.na(cex)] <- cex_size[[4]]
plot(dat, cex=cex, pch=21)
legend(
    "bottom", 
    legend=c("very small", "small", "large", "very large"), 
    bty="n",
    pch=21,
    cex=cex_size
)
Run Code Online (Sandbox Code Playgroud)

但是,这样做,不仅符号(pch)的大小发生了变化,而且图例文本也发生了变化.如何覆盖它,以便只有图例符号是不同的大小?

size r legend

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

从tcltk函数中获取数据

这可能是如此简单,当答案回来时我会畏缩但我完全难过.我已经尝试过手册,尝试搜索网页,各种示例以及我能想到的任何其他内容.我仍然被困住了.

我正在尝试为用户创建一个简单的输入,以添加两个值,然后我可以在R脚本的其余部分中使用这些值.我需要脚本暂停并等待来自用户的输入,然后在获得输入后继续(就像选择文件函数的工作原理一样).在阅读了一堆东西之后我决定使用库(tcltk).我在一个函数中有一个漂亮的小盒子.

inputs <- function(){

   xvar <- tclVar("")
   yvar <- tclVar("")

   tt <- tktoplevel()
   tkwm.title(tt,"Input Numbers")
   x.entry <- tkentry(tt, textvariable=xvar)
   y.entry <- tkentry(tt, textvariable=yvar)

   reset <- function()
    {
     tclvalue(xvar)<-""
     tclvalue(yvar)<-""
    }

   reset.but <- tkbutton(tt, text="Reset", command=reset)

   submit <- function() {
     x <- as.numeric(tclvalue(xvar))
     y <- as.numeric(tclvalue(yvar))
     print(x)
     print(y)
     tkdestroy(tt)
   }
   submit.but <- tkbutton(tt, text="submit", command=submit)

   tkgrid(tklabel(tt,text="Enter Two Inputs"),columnspan=2)
   tkgrid(tklabel(tt,text="Input1"), x.entry, pady = 10, padx =10)
   tkgrid(tklabel(tt,text="Input2"), y.entry, pady = 10, padx =10)
   tkgrid(submit.but, reset.but)

  }
Run Code Online (Sandbox Code Playgroud)

当我输入时:

 inputs()
Run Code Online (Sandbox Code Playgroud)

弹出漂亮的小方框,我可以输入我的值,例如3和4.

我回来了

<Tcl> …
Run Code Online (Sandbox Code Playgroud)

tk-toolkit r

5
推荐指数
1
解决办法
2816
查看次数

5
推荐指数
1
解决办法
2614
查看次数

如何将XML的一部分转换为数据框?(正确)

我试图从ClinicalTrials.gov的XML文件中提取信息.该文件按以下方式组织:

<clinical_study>
  ...
  <brief_title>
  ...
  <location>
    <facility>
      <name>
      <address>
        <city>
        <state>
        <zip>
        <country>
    </facility>
    <status>
    <contact>
      <last_name>
      <phone>
      <email>
    </contact>
  </location>
  <location>
    ...
  </location>
  ...
</clinical_study>
Run Code Online (Sandbox Code Playgroud)

我可以在以下代码中使用CRAN的R XML包从XML文件中提取所有位置节点:

library(XML)
clinicalTrialUrl <- "http://clinicaltrials.gov/ct2/show/NCT01480479?resultsxml=true"
xmlDoc <- xmlParse(clinicalTrialUrl, useInternalNode=TRUE)
locations <- xmlToDataFrame(getNodeSet(xmlDoc,"//location"))
Run Code Online (Sandbox Code Playgroud)

这样做很好.但是,如果查看数据框,您会注意到xmlToDataFrame函数将所有内容集中在<facility>一个连接的字符串中.解决方案是编写代码以逐列生成数据框,例如,您可以生成

xml r

5
推荐指数
1
解决办法
1241
查看次数

高效创建三对角矩阵

如何创建一个二次带矩阵,我给对角线和对角线下方和上方的第一个对角线?我正在寻找像这样的功能

tridiag(upper, lower, main)
Run Code Online (Sandbox Code Playgroud)

在哪里length(upper)==length(lower)==length(main)-1和返回,例如,

tridiag(1:3, 2:4, 3:6)

         [,1] [,2] [,3] [,4]
[1,]    3    1    0    0
[2,]    2    4    2    0
[3,]    0    3    5    3
[4,]    0    0    4    6
Run Code Online (Sandbox Code Playgroud)

有没有一种有效的方法呢?

r matrix

5
推荐指数
1
解决办法
1754
查看次数

从R脚本为多个进程打开新的单独R会话

有没有人知道它是否可以从主R脚本中获取R脚本,但是每个源文件都在一个单独的R会话中运行?我试图并行运行多个R进程(不使用复杂的并行库)并且考虑为每个拆分步骤调用一个新进程可以加快速度(我有很多RAM).

r

5
推荐指数
0
解决办法
584
查看次数

使用来自数据库(不同表)的数据定义 mlr3 任务?

这是一个新手问题。如何定义tsk使用(sqlite)数据库中的数据的(分类)?该mlr3db例子似乎先写内存中的数据。就我而言,数据已经在数据库中。也许更大的问题是,目标数据和特征在不同的表中。

我试过的:

con <- DBI::dbConnect(RSQLite::SQLite(), dbname = "my_data.db")
my_features <- dplyr::tbl(con, "my_features")
my_target <- dplyr::tbl(con, "my_targets")
task <- mlr3::TaskClassif$new("my_task", backend=my_features, target="???")
Run Code Online (Sandbox Code Playgroud)

然后我不知道如何指定target参数。

也许一个解决方案是在数据库中创建一个连接功能和目标的 VIEW?

r mlr3

5
推荐指数
1
解决办法
61
查看次数