小编Bri*_*ggs的帖子

R - Markdown避免包加载消息

我一直在使用Knitr通过R-Studio,并认为它非常整洁.我有一个小问题.当我在R-Chunk中获取文件时,knitr输出包括外部注释,如下所示:

+ FALSE Loading required package: ggplot2
+ FALSE Loading required package: gridExtra
+ FALSE Loading required package: grid
+ FALSE Loading required package: VGAM
+ FALSE Loading required package: splines
+ FALSE Loading required package: stats4
+ FALSE Attaching package: 'VGAM'
+ FALSE The following object(s) are masked from 'package:stats4':
Run Code Online (Sandbox Code Playgroud)

我试图以各种方式设置R-chunk选项,但似乎仍然没有避免这个问题:

```{r echo=FALSE, cache=FALSE, results=FALSE, warning=FALSE, comment=FALSE, warning=FALSE} 
source("C:/Rscripts/source.R");

```
Run Code Online (Sandbox Code Playgroud)

有没有办法评论这些消息?

markdown r rstudio knitr r-markdown

187
推荐指数
4
解决办法
19万
查看次数

R install.packages返回"无法创建锁定目录"

下载Rcpp软件包时出现此错误:

> install.packages("Rcpp", dependencies=TRUE)
Installing package(s) into ‘/home/me/src/Rlibs’ (as ‘lib’ is unspecified)
trying URL 'http://cran.us.r-project.org/src/contrib/Rcpp_0.10.2.tar.gz'
Content type 'application/x-gzip' length 2380089 bytes (2.3 Mb)
...
Warning in dir.create(lockdir, recursive = TRUE) :
  cannot create dir '/home', reason 'Permission denied'
ERROR: failed to create lock directory ‘/home/me/src/Rlibs/00LOCK-Rcpp’
...
Run Code Online (Sandbox Code Playgroud)

由于我的机器在计算机集群上,我在不同的节点上尝试过,我小心翼翼地删除了/ tmp中下载的临时文件.奇怪的是我有权写入/ home/me/src/Rlibs /.所以我的问题是:

  1. 为什么R想在/ home中拥有写作权,而只需要在/ home/me /中写作权?
  2. 我该如何修复错误?

> sessionInfo()
R version 2.15.2 (2012-10-26)
Platform: x86_64-redhat-linux-gnu (64-bit)
locale:
 [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C
 [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8
 [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8
 [7] LC_PAPER=C                 LC_NAME=C
 [9] LC_ADDRESS=C               LC_TELEPHONE=C …
Run Code Online (Sandbox Code Playgroud)

r package

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

在Ubuntu上安装psycopg2

我正在尝试在Ubuntu 12.04上安装python postgres客户端模块.指导是执行以下操作:

apt-get install python-psycopg2
Run Code Online (Sandbox Code Playgroud)

但是,apt说无法找到包裹.
我很想安装这个apt.这是我可以安装的另一个软件包的一部分吗?

python postgresql ubuntu

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

matplotlib条形图与日期

我知道plot_date()但是那里bar_date()有吗?

一般的方法是使用set_xticksset_xticklabels,但是我想要能够处理从几个小时到几年的时间尺度(这意味着涉及主要和次要的刻度以使我认为可读的东西).

编辑:我意识到我正在绘制与特定时间间隔(条形跨度)相关的值.我在下面用我使用的基本解决方案更新:

import matplotlib.pyplot as plt  
import datetime  
t=[datetime.datetime(2010, 12, 2, 22, 0),datetime.datetime(2010, 12, 2, 23, 0),         datetime.datetime(2010, 12, 10, 0, 0),datetime.datetime(2010, 12, 10, 6, 0)]  
y=[4,6,9,3]  
interval=1.0/24.0  #1hr intervals, but maplotlib dates have base of 1 day  
ax = plt.subplot(111)  
ax.bar(t, y, width=interval)  
ax.xaxis_date()   
plt.show()
Run Code Online (Sandbox Code Playgroud)

python datetime matplotlib bar-chart

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

执行标准回收规则

R的一个很好的特征与其固有的矢量化特性有关,它是2.2节中的R简介中描述的循环规则.

在同一表达式中出现的载体不必全部具有相同的长度.如果不是,则表达式的值是一个向量,其长度与表达式中出现的最长向量相同.表达式中较短的向量经常根据需要(可能是分数)再循环,直到它们与最长向量的长度匹配.特别是简单地重复常数.

大多数标准函数都使用它,但执行此操作的代码隐藏在底层C代码中.

是否有规范的方法来完全在R代码中实现函数的标准回收规则?也就是说,给定一个类似的功能

mock <- function(a, b, c) {
    # turn a, b, and c into appropriate recycled versions

    # do something with recycled a, b, and c in some appropriately vectorized way
}
Run Code Online (Sandbox Code Playgroud)

其中a,b和,c是否是可能具有不同长度和未知类型/类别的向量,是否有规范的方法来获得一组新的载体,这些载体根据标准回收规则进行回收?特别是,我不能假设"做某事"步骤本身会进行适当的回收,所以我需要事先自己做.

r

35
推荐指数
2
解决办法
6435
查看次数

如何在Chrome DevTools控制台中打印日志输出?

我希望能够在Chrome DevTools控制台中打印数组对象.有没有办法实现这个目标?

谢谢!

google-chrome google-chrome-devtools

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

带有值的热图(ggplot2)

我已经看到了各种R图形系统中包含晶格和基底的值的热图,如下所示:

在此输入图像描述

我倾向于使用ggplot2一点,并希望能够制作具有相应单元格值的热图.这是热图和尝试使用geom_text:

library(reshape2, ggplot2)
dat <- matrix(rnorm(100, 3, 1), ncol=10)
names(dat) <- paste("X", 1:10)
dat2 <- melt(dat, id.var = "X1")
p1 <- ggplot(dat2, aes(as.factor(Var1), Var2, group=Var2)) +
    geom_tile(aes(fill = value)) +
    scale_fill_gradient(low = "white", high = "red") 
p1

#attempt
labs <- c(apply(round(dat[, -2], 1), 2, as.character))
p1 +  geom_text(aes(label=labs), size=1)
Run Code Online (Sandbox Code Playgroud)

通常我可以找出要传递的x和y值,但在这种情况下我不知道,因为此信息未存储在数据集中.如何将文字放在热图上?

r ggplot2

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

ggplot2中没有数据时换行

我正在使用R来绘制一些数据.

Date <- c("07/12/2012 05:00:00", "07/12/2012 06:00:00", "07/12/2012 07:00:00",
      "07/12/2012 08:00:00","07/12/2012 10:00:00","07/12/2012 11:00:00")
Date <- strptime(Date, "%d/%m/%Y %H:%M")
Counts <- c("0","3","10","6","5","4")
Counts <- as.numeric(Counts)
df1 <- data.frame(Date,Counts,stringsAsFactors = FALSE)
library(ggplot2)
g = ggplot(df1, aes(x=Date, y=Counts)) + geom_line(aes(group = 1))
g
Run Code Online (Sandbox Code Playgroud)

如果时间中断,我如何要求R不要将数据绘制成连续线?我通常每小时都有一个数据点,但有时会有一个休息时间(早上8点到10点之间).在这些点之间,我不希望线路连接.这可能在R?

编辑

非常感谢这里的回复.我的数据现在间隔为10秒,我希望使用这些数据进行相同的分析.

df <- structure(list(Date = c("11/12/2012", "11/12/2012", "11/12/2012", 
                     "11/12/2012", "11/12/2012", "11/12/2012", "11/12/2012", 
                     "11/12/2012", "11/12/2012", "11/12/2012", "11/12/2012"),
                     Time = c("20:16:00", "20:16:10", "20:16:20", "20:16:30", 
                     "20:16:40", "20:16:50", "20:43:30", "20:43:40", 
                     "20:43:50", "20:44:00", "20:44:10"),
                     Axis1 = c(181L, 14L, 65L, 79L, 137L, 104L, 7L, …
Run Code Online (Sandbox Code Playgroud)

r ggplot2

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

使用Roxygen在同一文件中记录两个S3方法

我有两种方法用于密切相关的S3泛型(在另一个包中定义),因此我想在同一个Rd文件中记录它们.但是,当我单独记录他们的参数时,我会收到R CMD check关于"文档对象中的重复\参数条目" 的警告

##' Create a ggplot of a Kaplan-Meier Survival curve(s)
##'
##' @param data  A \code{survfit} object returned from \code{\link{survfit}}
##' @param \dots Unused
##' @return A ggplot2 object
autoplot.survfit <- function(data, ...) {
    NULL
}

##' @rdname autoplot.survfit
##' @param data A \code{\link{survfit.fortify}} object returned from \code{\link{fortify.survfit}}
autoplot.survfit.fortify <- function(data, ...) {
    NULL
}
Run Code Online (Sandbox Code Playgroud)

第一个参数必须是data因为这是泛型定义的.但是,对于不同的方法,它的文档是不同的,只是因为它必须是不同的类.我可以有两个单独的文档文件,但它们是紧密耦合的,所以我想将它们保持在一起.我可以data在第一次调用中列出所有可能的类,并且在后续调用中没有任何内容,但这意味着我用第一个函数记录第二个函数而不是将它们全部保存在一起,就像Roxygen一样.

是否有可能通过多种方法获得roxygen来创建合法(不重复参数)?如果没有,处理这种情况的最佳方法是什么?

documentation r roxygen2

23
推荐指数
1
解决办法
1748
查看次数

如何从data.frame中删除行而不会丢失属性

对于初学者:我现在在这个问题上搜索了几个小时 - 所以如果答案应该是微不足道的,请原谅我......

我想要做的是从data.frame中删除一行(编号101).它包含测试数据,不应出现在我的分析中.我的问题是:每当我从data.frame中进行子集化时,属性(特别是注释)都会丢失.

str(x)
# x has comments for each variable
x <- x[1:100,]
str(x)
# now x has lost all comments
Run Code Online (Sandbox Code Playgroud)

有充分证据表明,子集将丢弃所有属性 - 到目前为止,它非常清楚.手册(例如http://stat.ethz.ch/R-manual/R-devel/library/base/html/Extract.data.frame.html)甚至建议了一种保留属性的方法:

## keeping special attributes: use a class with a
## "as.data.frame" and "[" method:


as.data.frame.avector <- as.data.frame.vector

`[.avector` <- function(x,i,...) {
  r <- NextMethod("[")
  mostattributes(r) <- attributes(x)
  r
}

d <- data.frame(i= 0:7, f= gl(2,4),
                u= structure(11:18, unit = "kg", class="avector"))
str(d[2:4, -1]) # 'u' keeps its "unit"
Run Code Online (Sandbox Code Playgroud)

到目前为止,我还不知道究竟发生了什么.但是,只需运行这些行(除了最后三行)不会改变我的子集的行为.使用带有适当向量的命令subset()(100次TRUE + 1 FALSE)给出了相同的结果.简单地将属性存储到变量并在子集之后恢复它也不起作用. …

statistics r

19
推荐指数
2
解决办法
3879
查看次数