我有一个由一组点组成的数据集.这些点以这样一种方式分布在飞机上,即它们可以用抛物线大致界定.我试图找到一种方法将抛物线拟合到点的边界.
这就是我目前所拥有的:
a = 1
b = 2
c = 3
parabola <- function(x) {
a * x^2 + b * x + c
}
N = 10000
x <- runif(N, -4, 3)
y <- runif(N, 0, 10)
data <- data.frame(x, y)
data <- subset(data, y >= parabola(x))
plot(data, xlim = c(-5, 5), ylim = c(0, 10), col = "grey")
fr <- function(x) {
PAR = x[1] * data$x^2 + x[2] * data$x + x[3]
#
sum((PAR - data$y)^2 + …Run Code Online (Sandbox Code Playgroud) 我在编织位于网络驱动器上的降价文件时遇到了一些麻烦。我正在使用 rmarkdown::render() 来编织文件。我已经将问题追溯到 file_path_as_absolute() 函数。
我的工作目录中有一个 Markdown 文件 foo.Rmd。
> list.files()
[1] "$RECYCLE.BIN" "2014-11-04-popular-wagers-distribution.pdf"
[3] "db-connection.R" "desktop.ini"
[5] "figure" "foo.md"
[7] "foo.Rmd" "game-popularity.R"
[9] "My Data Sources" "player-data-game-monitoring.tsv"
[11] "player-linking.R" "player-pca.R"
[13] "query-1.sql" "query-2.sql"
[15] "R" "report-test-2.Rmd"
[17] "report-test.md" "report-test.Rmd"
[19] "report-test.xxx" "SQL Server Management Studio"
[21] "test.md" "test.R"
[23] "test.Rmd" "Thumbs.db"
Run Code Online (Sandbox Code Playgroud)
我可以找到绝对路径:
> normalizePath("foo.Rmd")
[1] "\\\\dernetapp02\\h$\\users\\AndrewCo\\myCitrixFiles\\Documents\\foo.Rmd"
Warning message:
In normalizePath(path.expand(path), winslash, mustWork) :
path[1]="foo.Rmd": Access is denied
Run Code Online (Sandbox Code Playgroud)
尽管它会产生警告,但它仍然有效。我不确定为什么会收到此警告,因为我确实拥有对该文件的读写访问权限。
但是调用 file_path_as_absolute(),它只是 normalizePath() 的一个包装器,会将这个警告变成一个错误。
> tools::file_path_as_absolute(input)
Error in normalizePath(path.expand(path), winslash, mustWork) …Run Code Online (Sandbox Code Playgroud) 我正在使用分段包,并davies.test()在函数内调用时遇到问题.
考虑以下情况:
library(segmented)
data = data.frame(x = 1:21, y = c(10:1, 0:10))
fit = lm(y ~ x, data = data)
fit.seg = segmented(fit, seg.Z = ~ x)
davies.test(fit.seg, seg.Z = ~ x, alternative = "greater")
Run Code Online (Sandbox Code Playgroud)
这完美地起作用并且表明分段回归具有两个统计上不同的斜率.
现在,如果我把所有这些打包成这样的函数:
testit <- function() {
data = data.frame(x = 1:21, y = c(10:1, 0:10))
fit = lm(y ~ x, data)
fit.seg = segmented(fit, seg.Z = ~ x)
davies.test(fit.seg, seg.Z = ~ x, alternative = "greater")$p.value
}
testit()
Run Code Online (Sandbox Code Playgroud)
然后它工作正常......
但是如果我fit从全球环境中删除它就会失败.
> …Run Code Online (Sandbox Code Playgroud) 我有一组分布在文件夹层次结构中的 RMarkdown 文档。所有文档都引用相同的 CSS 和页眉/页脚文件。我目前有这些文件的硬编码路径,但这很难维护。我更喜欢动态生成路径。
这是有效的(日期是在代码中动态生成的):
---
title: "Untitled"
date: "`r Sys.Date()`"
output: html_document
---
Run Code Online (Sandbox Code Playgroud)
但这不起作用:
---
title: "Untitled"
date: "`r Sys.Date()`"
output:
html_document:
css: '`r here::here("styles/styles.css")`'
includes:
before_body: '`r here::here("styles/header.html")`'
after_body: '`r here::here("styles/footer.html")`'
---
Run Code Online (Sandbox Code Playgroud)
文件styles.css,header.html和footer.html都位于styles/项目根目录下的文件夹中。当我here::here()从控制台使用这些文件时,它运行良好。
但是,当我编译 RMarkdown 时,出现如下错误:
File `r here::here( not found in resource path
Error: pandoc document conversion failed with error 99
Run Code Online (Sandbox Code Playgroud)
上述错误与 CSS 文件有关。然后对于页眉和页脚:
pandoc: `r here::here("styles/header.html")`: openBinaryFile: does not exist
(No such file or directory) …Run Code Online (Sandbox Code Playgroud) 我一直在试验HiveR并成功创建了一个蜂巢图,它代表了我正在使用的数据集之一.数据的原始图表是一个经典的毛球:

但是,蜂巢图可以更简单,更直观地显示数据:

然而,问题在于绘图仅占据画布的相对较小的部分.我已经尝试了各种技巧来裁剪它,以便情节占据了大部分框架,但它们都没有成功.最有希望的选择是将绘图写入pdf或eps文件,然后使用pdfcrop或epstool来修剪空白区域,但它们都没有在实践中工作.我怀疑该情节有一些看不见的元素,这些元素会使边界框膨胀.
有没有人对如何有效地减少这个阴谋有任何想法?[我知道我可以手动完成,但我必须制作一些这样的图,我正在寻找一种系统/程序化的方法来实现它.]
可以在此处找到蜂巢图的数据结构.
非常感谢,安德鲁.
以下是创建绘图的代码:
set.seed(3)
VERTICES <- 512
library(igraph)
big.graph <- barabasi.game(VERTICES, power = 1,
out.seq = sort(sample(c(1, 2, 3, 4), VERTICES, replace = TRUE,
prob = c(0.1, 0.7, 0.1, 0.1))),
directed = FALSE, out.pref = TRUE)
library(HiveR)
library(digest)
V(big.graph)$name <- sapply(1:VERTICES, function(n) {digest(n, algo = "crc32", serialize = TRUE)})
big.matrix <- get.adjacency(big.graph, type= "lower", attr=NULL, names=TRUE, sparse=FALSE)
colnames(big.matrix) <- V(big.graph)$name
rownames(big.matrix) <- colnames(big.matrix)
hive <- adj2HPD(big.matrix, axis.cols = "black")
hive <- mineHPD(hive, option = …Run Code Online (Sandbox Code Playgroud)