小编Mar*_*ann的帖子

knitr中R markdown的全局注释选项

要更改输出的前导字符,.Rmd中的knitr块有一个注释选项,如

```{r comment = ""}
1:100
```
Run Code Online (Sandbox Code Playgroud)

有没有办法全局设置,而不是每个块都单独设置?

opts_knit$set(comment = "")
Run Code Online (Sandbox Code Playgroud)

不起作用,我在文档中的任何地方都找不到它.

r knitr

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

仅在两者都存在时才从开头和结尾处删除引号

我想清理包含转义引号的字符串.我想删除字符串的结尾和开头的转义引号,但保持字符串中所有qoutation标记的完整性.我想出的是以下内容.

library(stringr)
s1 <- "\"He said:\"Hello\" - some word\""
str_replace_all(s1, "(^\\\")|(\\\"$)", "")

> [1] "He said:\"Hello\" - some word"
Run Code Online (Sandbox Code Playgroud)

我现在正在努力的是,我只想删除引号,当且仅当开头和结尾有一个引号时.否则不.以下表达式错误地删除了前导表达式.

s2 <- "\"Hello!\" he said"
str_replace_all(s2, "(^\\\")|(\\\"$)", "")

> [1] "Hello!\" he said"
Run Code Online (Sandbox Code Playgroud)

在这里我的正则表达式应该表明我只想删除它们,以防整个字符串被包装在转义引号中.我怎样才能做到这一点?

regex r stringr

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

使用 R 将 Excel (.xlsx) 工作表打印/保存为 PDF

我想在操作后将Excel文件打印到pdf文件中。对于操作,我使用了.xlsx运行良好的包。有一个功能,printSetup但我找不到开始打印的功能。有解决方案吗?

library(xlsx)
file <- "test.xlsx"
wb <- loadWorkbook(file)  
sheets <- getSheets(wb)       # get all sheets
sheet <- sheets[[1]]          # get first sheet
# HERE: MAGIC TO SAVE THIS SHEET TO PDF
Run Code Online (Sandbox Code Playgroud)

它可能是通过包使用DCOM的解决方案RDCOMClient,但我更喜欢平台独立的解决方案(例如使用xlsx),因为我在 MacOS 上工作。有任何想法吗?

excel dcom r xlsx

5
推荐指数
2
解决办法
4946
查看次数

使用管道工包提供静态文件 - 找不到文件 (404)

我想为一个静态文件plumber的描述在这里。带有路线等的文件是server.R

#* @get /files
function()
{
  return(dir("files"))
}

#* @static ./files
list() 
Run Code Online (Sandbox Code Playgroud)

这应该使files目录在路径上可用/public。里面files有一个文件index.html。运行上面的代码:

library(plumber)
r <- plumb("server.R")
r$run()
Run Code Online (Sandbox Code Playgroud)

调用localhost:8000/files返回:

["index.html"]
Run Code Online (Sandbox Code Playgroud)

但是,调用localhost:8000/public/index.html会出现 404 错误:

{"error":["404 - Resource Not Found"]}
Run Code Online (Sandbox Code Playgroud)

打印r对象,公共路径似乎已定义:

> r
<plumber>
  Public:
    addAssets: function (dir, path = "/public", options = list()) 
    ...
Run Code Online (Sandbox Code Playgroud)

我哪里出错了?

r plumber

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

在格子中复制rgl视点

使用交互式选择合适的视点rgl然后在lattice3d图中采用相同的方向将是方便的.例如,给出以下使用非信息性观点的图.

library(lattice)
wireframe(volcano, screen = list(x=0, y=0, z=0))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

同样可以在打开rgl

library(rgl)
persp3d(volcano)
view3d(0, 0)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

通过交互式,可以轻松地将绘图旋转到信息视图.

在此输入图像描述

给出当前rgl视点的矩阵可以通过提取

p <- par3d()
p$userMatrix
Run Code Online (Sandbox Code Playgroud)

如何该矩阵被转换成相应的x,y,z screen参数复制在晶格的视图?

更新1

我在下面尝试了42的转换.代码显示了rgl图和每行的相应晶格图.如果我正确实现它(参见下面的代码),似乎仍然存在问题.

在此输入图像描述

# convert rgl viewpoint into lattice 
# screen orientation
rgl_to_lattice_viewpoint <- function()
{
  p <- par3d()
  rotm <- p$userMatrix
  B = 360*atan(rotm[1,2]/rotm[2,2])/(2*pi)
  P = 360*asin(-rotm[3,2])/(2*pi)
  H = 360*atan(rotm[3,1]/rotm[3,3])/(2*pi)
  list(x=-B, y=-P, z=-H)
}


# read and plot PNG image 
plot_png <- function(f)
{
  img …
Run Code Online (Sandbox Code Playgroud)

r lattice rgl

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

在闪亮的服务器上部署打包的闪亮app

为闪亮的服务器设置这样一个闪亮的应用程序

+---/srv/shiny-server
|   +---shinyApp1
|       +---server.R
|       +---ui.R
Run Code Online (Sandbox Code Playgroud)

一切正常.但是,当上述文件(ui.R,server.R)包含在packages inst/shiny文件夹中时,我该怎么做呢?(例如,参见我的gridsampler repo).

如何在闪亮的服务器上部署打包的闪亮应用程序?

r shiny shiny-server

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

双冒号运算符在 do.call 中指定函数

使用sum和求和两个do.call向量将是

sum(1,2)
do.call("sum", list(1,2))
Run Code Online (Sandbox Code Playgroud)

sum使用双冒号运算符 ( )指定函数base::sum在第一种情况下可以工作,但在这种do.call情况下会失败。

base::sum(1,2)
do.call("base::sum", list(1,2))
> Error in `base::sum`(1, 2) : could not find function "base::sum"
Run Code Online (Sandbox Code Playgroud)
  1. 有没有办法do.call使用双冒号进行工作?
  2. 为了了解:幕后发生了什么导致其失败?

r function call

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

从二进制相似度矩阵生成(重叠)相互相似的元素集

给定一个对称的二进制相似度矩阵M1=相似度),我想提取所有(可能重叠的)子集,其中一个集合中的所有元素都相互相似。

  A B C D E
A 1 1 0 0 0
B 1 1 1 1 0
C 0 1 1 1 1
D 0 1 1 1 1
E 0 0 1 1 1
Run Code Online (Sandbox Code Playgroud)

另外,包含在其他集合中的集合也应丢弃(例如,{D,E}中包含{C,D,E})。对于矩阵的结果将是:{A,B}{B,C,D}{C,D,E}

  1. 我如何轻松实现这一目标?
  2. 我怀疑有一些用于此目的的聚类算法,但是我不知道这些类型问题的名称。该任务属于哪一类(数学)问题?

M <- matrix(c(1,1,0,0,0,
              1,1,1,1,0,
              0,1,1,1,1,
              0,1,1,1,1,
              0,0,1,1,1), ncol = 5, byrow = TRUE)
colnames(M) <- rownames(M) <- LETTERS[1:5]
Run Code Online (Sandbox Code Playgroud)

PS。虽然这听起来像是一些家庭作业,但实际上是我在工作中遇到的问题:)

r cluster-analysis set

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

装饰一个函数以计算它被调用的次数,同时保留原始函数参数

我想编写一个装饰器函数,为函数添加一个计数器,计算它被调用的次数。例如

foo <- function(x) {x}
foo <- counter_decorator(foo)
foo(1)
foo(1)
# => the counter gets incremented with each call and has the value 2 now
Run Code Online (Sandbox Code Playgroud)

下面的方法基本上有效,但是:

  • 我希望内部函数(由装饰器返回)具有与原始函数相同的形式参数,而不仅仅是省略号(即...)。我不知道如何做到这一点。有任何想法吗?
  • 不确定整个方法是否好。替代方案或改进值得赞赏。

这是我到目前为止所做的:

# Init or reset counter
counter_init <- function() {
  .counters <<- list()  
}

# Decorate a function with a counter
#
# Each time the function is called the counter is incremented
#
# fun: function to be decorated
# fun_name: name in .counters list to store number …
Run Code Online (Sandbox Code Playgroud)

r function decorator

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

闪亮:从闪亮的应用程序中打开新的浏览器选项卡

从闪亮的内部我想在新的浏览器选项卡中打开一个HTML页面. 这里指出我需要JS来完成这项任务.假设我想在我的闪亮应用中的新标签页中打开网址http://www.google.com.我还不熟悉JS,我不知道哪个代码包含在哪里以及如何在闪亮的app中调用它.我该怎么办呢?

r shiny

4
推荐指数
2
解决办法
8025
查看次数

标签 统计

r ×10

function ×2

shiny ×2

call ×1

cluster-analysis ×1

dcom ×1

decorator ×1

excel ×1

knitr ×1

lattice ×1

plumber ×1

regex ×1

rgl ×1

set ×1

shiny-server ×1

stringr ×1

xlsx ×1