小编Ric*_*ton的帖子

如何让RStudio自动编译R Markdown Vignettes?

我正在尝试使用R Markdown编写R Package vignet.我正在使用R Studio的包创作工具.

我的R大于3.0版.

我在vignettes文件夹中有一个.Rmd文件,顶部包含以下文本:

<!--
%\VignetteEngine{knitr::knitr}
%\VignetteIndexEntry{An Introduction to the bootcorrelations package}
-->
Run Code Online (Sandbox Code Playgroud)

我的DESCRIPTION文件中有以下内容:

VignetteBuilder: knitr
Suggests: knitr
Run Code Online (Sandbox Code Playgroud)

当我在RStudio中清理和构建或重新加载包时,会显示插图源,但不显示HTML(即,没有HTML文件inst/man).

在此输入图像描述

如何让RStudio从R Markdown Vignette自动创建HTML?

我已经阅读了Yihui关于使用Markdown的R Package Vignettes的帖子,它建议使用makefile,但是这个关于knitr vignettes的最新文档表明不再需要makefile.

我也意识到我可以使用如下命令手动创建HTML插图:

library(knitr)
knit(input='vignettes/foo.Rmd', output='inst/doc/foo.md')
library(markdown)
markdownToHTML('inst/doc/foo.md', 'inst/doc/foo.html')
Run Code Online (Sandbox Code Playgroud)

一个可重复的例子:

Vectorize(dir.create)(c("test", "test/R", "test/man", "test/vignettes"))

cat(
  'Package: test
Title: Test pkg
Description: Investigate how to auto-compile markdown vignettes
Version: 0.0-1
Date: 2015-03-15
Author: Jeromy Anglim
Maintainer: Jeromy Anglim <a@b.com>
Suggests: knitr
License: …
Run Code Online (Sandbox Code Playgroud)

r rstudio knitr r-markdown

29
推荐指数
1
解决办法
6293
查看次数

<my code>出错:赋值目标扩展为非语言对象

我收到了错误

Error in <my code> : target of assignment expands to non-language object
Run Code Online (Sandbox Code Playgroud)

要么

Error in <my code> : invalid (do_set) left-hand side to assignment
Run Code Online (Sandbox Code Playgroud)

要么

Error in <my code> : invalid (NULL) left side of assignment
Run Code Online (Sandbox Code Playgroud)

它是什么意思,我该如何预防呢?

r r-faq

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

当我尝试预测R-caret中的类概率时出错

我用插入符号构建了一个模型.培训结束后,我收到以下警告:

警告消息:在train.default(x,y,weights = w,...)中:至少有一个类级别不是有效的R变量名称; 如果生成类概率,这可能会导致错误,因为变量名称将转换为:X0,X1

变量的名称是:

      str(train)
'data.frame':   7395 obs. of  30 variables:
 $ alchemy_category              : Factor w/ 13 levels "arts_entertainment",..: 2 8 6 6 11 6 1 6 3 8 ...
 $ alchemy_category_score        : num  3737 2052 4801 3816 3179 ...
 $ avglinksize                   : num  2.06 3.68 2.38 1.54 2.68 ...
 $ commonlinkratio_1             : num  0.676 0.508 0.562 0.4 0.5 ...
 $ commonlinkratio_2             : num  0.206 0.289 0.322 0.1 0.222 ...
 $ commonlinkratio_3             : num  0.0471 0.2139 0.1202 0.0167 …
Run Code Online (Sandbox Code Playgroud)

r predict r-caret

27
推荐指数
3
解决办法
4万
查看次数

如何为不同方面设置不同的比例限制?

一些样本数据:

dfr <- data.frame(
  x = rep.int(1:10, 2),
  y = runif(20),
  g = factor(rep(letters[1:2], each = 10))
)
Run Code Online (Sandbox Code Playgroud)

一个简单的散点图,有两个方面:

p <- ggplot(dfr, aes(x, y)) + 
  geom_point() +
  facet_wrap(~ g, scales = "free_y")
Run Code Online (Sandbox Code Playgroud)

我可以为所有面板设置轴限制

p + scale_y_continuous(limits = c(0.2, 0.8))
Run Code Online (Sandbox Code Playgroud)

(或者像这样的包装ylim)

但是如何为不同的方面设置不同的轴限制?

执行此操作的格式方法是将列表传递给此参数,例如,

p + scale_y_continuous(limits = list(c(0.2, 0.8), c(0, 0.5)))
Run Code Online (Sandbox Code Playgroud)

不幸的是,这只会在ggplot2案例中引发错误.

编辑:

这是部分黑客攻击.如果要扩展比例范围,则可以向数据集添加指定限制的列,然后使用geom_blank.

修改后的数据集:

dfr <- data.frame(
  x = rep.int(1:10, 2),
  y = runif(20),
  g = factor(rep(letters[1:2], each = 10)),
  ymin = rep(c(-0.6, 0.3), each = …
Run Code Online (Sandbox Code Playgroud)

r ggplot2

26
推荐指数
2
解决办法
6532
查看次数

在R中保存和加载模型

使用插入符号时,如何在训练后保存模型,并在以后加载(例如在不同的会话中)进行预测?

r r-caret

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

Python中是否有sessionInfo()等价物?

通常我使用R,并且经常在想要制作可重复使用的东西时使用sessionInfo().这样做的原因是我想让人们知道我正在使用的所有版本的版本以及我安装/加载了哪些软件包以及我使用的操作系统等等,以便它非常清楚.

sessionInfo 返回R的版本,处理器类型(例如32/64位x86),操作系统,区域设置详细信息以及已加载的软件包.

我是python的新手,想知道是否有Python的等价物?我希望在iPython笔记本中使用它......

python r ipython

26
推荐指数
2
解决办法
1947
查看次数

警告消息:使用rpart在插入符号train()中"重新采样性能度量中缺少值"

我正在使用插入包来训练带有"rpart"包的模型;

tr = train(y ~ ., data = trainingDATA, method = "rpart")
Run Code Online (Sandbox Code Playgroud)

数据没有缺失值或NA,但在运行命令时会出现警告消息;

    Warning message:
In nominalTrainWorkflow(x = x, y = y, wts = weights, info = trainInfo,  :
  There were missing values in resampled performance measures.
Run Code Online (Sandbox Code Playgroud)

有谁知道(或者可以指出我在哪里找到答案)这个警告意味着什么?我知道它告诉我重新采样的性能测量中缺少值 - 但这究竟意味着什么,以及如何出现这样的情况?顺便说一下,这个predict() 功能适用于合身的模型,所以这只是我的好奇心.

r rpart r-caret

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

你如何编写包文档?

我还没有找到一个合理的工作流程来构建包和编写他们的文档.

我希望尽可能多地自动生成流程(和文档).

显而易见的方法是使用package.skeleton创建基本包文件,然后以编程方式覆盖DESCRIPTION文件和Rd文件.这样做的问题在于您丢失了自动生成的字段,确保您记得记录所有正确的参数.

我想知道如何构建包和编写文档.有没有可用的工具使这个过程更容易?(roxygen看起来像是为这类东西而设计的;有没有一个很好的教程呢?还有其他选择吗?)

documentation packages r documentation-generation roxygen2

25
推荐指数
1
解决办法
4824
查看次数

已经在for循环中制作的多个ggplot2图的网格

作为一个新的ggplot2用户,我有点失去了可能性,并努力在网上找到一个简单的答案,我认为是一个简单的问题.

我想在同一张纸上显示来自ggplot2的多个图,但是知道这些图来自for循环.

下面的例子没有编译,只是为了说明:

for(i in c(1:n)){                                   
  for(j in c(1:m)){
    ..........  # some data production
    p <- ggplot(df.all) + geom_bar(aes_string(x=class.names[i],fill=var.names[j])
}}
Run Code Online (Sandbox Code Playgroud)

在这里,p被覆盖了,但是我希望有一个矩阵或一个列表,我可以将所有p放在它们生成的位置,然后像一个简单的函数,如

display_in_a_grid(list_of_ggplot_plots)
Run Code Online (Sandbox Code Playgroud)

但据我所知,我无法制作一个绘图矩阵列表,也无法找到只接受一个参数输入的函数.

关于我看过的事情:

包gridExtra中的"arrangeGrob"不起作用,因为它需要每个绘图的显式名称(例如:p1,p2,p3,...),如http://code.google.com/p/gridextra/wiki/ arrangeGrob

ggplot2的"facet"方法不适合我的数据集的组织(或相反:p)

你有一个简单的方法来管理这个吗?

谢谢,

弗朗索瓦

r ggplot2 r-grid

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

十六进制代码(\ x)和unicode(\ u)字符之间有什么区别?

来自?Quotes:

\xnn   character with given hex code (1 or 2 hex digits)  
\unnnn Unicode character with given code (1--4 hex digits)
Run Code Online (Sandbox Code Playgroud)

在Unicode字符只有一个或两个数字的情况下,我希望这些字符是相同的.实际上,?Quotes帮助页面上的一个示例显示:

"\x48\x65\x6c\x6c\x6f\x20\x57\x6f\x72\x6c\x64\x21"
## [1] "Hello World!"
"\u48\u65\u6c\u6c\u6f\u20\u57\u6f\u72\u6c\u64\u21"
## [1] "Hello World!"
Run Code Online (Sandbox Code Playgroud)

但是,在Linux下,当我试图打印一个英镑符号时,我明白了

cat("\ua3")
## £
cat("\xa3")
## ?
Run Code Online (Sandbox Code Playgroud)

也就是说,\x十六进制代码无法正确显示.(这种行为持续存在于我尝试的任何区域设置.)在Windows 7下,两个版本都显示一个井号.

如果我转换为整数然后返回,则在Linux下正确显示井号.

cat(intToUtf8(utf8ToInt("\xa3")))
## £
Run Code Online (Sandbox Code Playgroud)

顺便说一下,这在Windows下不起作用,因为utf8ToInt("\xa3")返回NA.

某些\x字符NA在Windows下返回但在Linux下引发错误.例如:

utf8ToInt("\xf0")
## Error in utf8ToInt("\xf0") : invalid UTF-8 string
Run Code Online (Sandbox Code Playgroud)

("\uf0"是一个有效的角色.)

这些例子表明字符\x\u形式之间存在一些差异,这些差异似乎是特定于操作系统的,但我看不出它们如何被定义的任何逻辑.

这两种字符形式有什么区别?

unicode hex r

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