小编Car*_*lli的帖子

R数据格式:RData,Rda,Rds等

.RData,.Rda和.Rds文件之间的主要区别是什么?

进一步来说:

  • 压缩等方面是否存在差异?
  • 应该何时使用每种类型?
  • 如何将一种类型转换为另一种类型?

r rda r-faq rdata

203
推荐指数
2
解决办法
12万
查看次数

使用knitr和latex编写Rmarkdown中的代码块字体大小

在knitr中,size选项在.Rnw文件中正常工作,以下代码生成:

\documentclass{article}

\begin{document}

<<chunk1, size="huge">>=
summary(mtcars)
@


\end{document}
Run Code Online (Sandbox Code Playgroud)

RNW

但是,我不能让它在Rmarkdown中工作.以下代码不会像在.rnw文件中那样更改字体大小.尝试设置选项时会发生同样的事情opts_chunk$set(size="huge").

这是预期的行为吗?如何更改块代码字体大小?(我的意思是使用knitr选项,而不是\huge在代码之前添加)

---
title: "Untitled"
output: pdf_document
---

```{r, size="huge"}
summary(mtcars)
```
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我使用的是RStudio版本0.98.987,knitr 1.6和rmarkdown 0.2.68.

latex r knitr r-markdown

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

为什么(或什么时候)Rscript(或更小)比R CMD BATCH更好?

我正在使用Rin 自动化一些webscraping,cron有时我使用R CMD BATCH,有时我使用Rscript.

决定使用哪一个我主要关注,如果我想要的.Rout文件.

但是在SO中读到一些问题的答案(比如这个或者这个)似乎Rscript是首选R CMD BATCH.

所以我的问题是:

  • 除了语法略有不同并且R CMD BATCH保存.Rout文件而不保存文件Rscript这两个事实之外,它们之间的主要区别是什么?

  • 我什么时候应该更喜欢一个?更具体地说,在cron上面提到的工作中,他们中的一个是首选吗?

  • 我还没有使用littler,它是如何从两个不同的RscriptR CMD BATCH

cron cmd r batch-file rscript

39
推荐指数
2
解决办法
9995
查看次数

包含NAs的因子列的唯一值=>"哈希表已满"错误

我有一个57m记录和9列的data.table,当我尝试运行一些摘要统计时,其中一个会导致问题.有问题的列是3699级别的因素,我从以下代码行收到错误:

    > unique(da$UPC)
    Error in unique.default(da$UPC): hash table is full
Run Code Online (Sandbox Code Playgroud)

现在很明显我只会使用:levels(da$UPC)但我试图计算每个组中存在的唯一值,作为data.table组语句中多个j参数/ caluclations的一部分.

有趣的unique(da$UPC[1:1000000])是按预期工作,但unique(da$UPC[1:10000000])没有.鉴于我的表有57m记录,这是一个问题.

我尝试将因子转换为字符,这没有问题,如下所示:

    da$UPC = as.character(levels(da$UPC))[da$UPC]
    unique(da$UPC)
Run Code Online (Sandbox Code Playgroud)

这样做确实向我展示了一个额外的"水平" NA.因此,因为我的数据在因子列中有一些NA,所以唯一函数无法工作.我想知道这是否是开发人员意识到需要修复的东西?我发现以下关于r-devel的文章可能是相关的,但我不确定,也没有提及data.table.

链接文章:唯一(1:3,nmax = 1)冻结R!

    sessionInfo:

    R version 3.0.1 (2013-05-16)
    Platform: x86_64-unknown-linux-gnu (64-bit)

    locale:
     [1] LC_CTYPE=C                    LC_NUMERIC=C
     [3] LC_TIME=en_US.iso88591        LC_COLLATE=C
     [5] LC_MONETARY=en_US.iso88591    LC_MESSAGES=en_US.iso88591
     [7] LC_PAPER=C                    LC_NAME=C
     [9] LC_ADDRESS=C                  LC_TELEPHONE=C
     [11] LC_MEASUREMENT=en_US.iso88591 LC_IDENTIFICATION=C

    attached base packages:
    [1] stats     graphics  grDevices utils     datasets  methods   base

    other attached packages:
    [1] plyr_1.8         data.table_1.8.8
Run Code Online (Sandbox Code Playgroud)

r unique na r-factor

20
推荐指数
1
解决办法
2376
查看次数

使用JavaScript进行数据分析?

今天,我的数据分析例程将如下所示:使用R,Julia或Python进行繁重的工作,然后使用JavaScript在Web中显示它(例如,使用D3.js).

我最初关注JS的主要是数据可视化/与分析的最终产品的交互,所以我开始研究它.但我想知道:JS库是否专注于数据分析(使用数据框架的概念进行数据处理,统计模型的实现),因此直接在JavaScript中完成一些繁重的工作是可行的?

javascript data-analysis

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

R中字符的对象大小 - R全局字符串池如何工作?

我正在阅读Hadley的高级R编程,当它讨论字符的内存大小时,它说:

R有一个全局字符串池.这意味着每个唯一字符串仅存储在一个位置,因此字符向量占用的内存比您预期的要少.

本书给出的例子如下:

library(pryr)
object_size("banana")
#> 96 B
object_size(rep("banana", 10))
#> 216 B
Run Code Online (Sandbox Code Playgroud)

本节中的一个练习是比较这两个字符向量:

vec <- lapply(0:50, function(i) c("ba", rep("na", i)))
str <- lapply(vec, paste0, collapse = "")

object_size(vec)
13.4 kB

object_size(str)
8.74 kB
Run Code Online (Sandbox Code Playgroud)

现在,由于该段落声明R具有全局字符串池,并且由于向量vec主要由两个字符串("ba"和"na")的重复组成,所以我实际上 - 直觉地 - 期望大小vec小于大小的str.

所以我的问题是:你怎么能最准确地预先估计这些矢量的大小?

memory r vector character

9
推荐指数
1
解决办法
546
查看次数

Convert Date to POSIXct

Why does the Date below change to "2014-07-07" when converted to POSIXct?

Sys.setenv(TZ='America/Sao_Paulo')
d <- as.Date("2014-07-08", format="%Y-%m-%d")
d
[1] "2014-07-08"
as.POSIXct(d)
[1] "2014-07-07 21:00:00 BRT"
Run Code Online (Sandbox Code Playgroud)

r date posixct

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

通用函数R的范围

如果在泛型函数内定义变量,则该方法可以使用该变量.例如:

g <- function(x) {
  y <- 2
  UseMethod("g")
}
g.default <- function() y
g()
[1] 2
Run Code Online (Sandbox Code Playgroud)

但是,如果您定义的变量与函数参数具有相同的名称,则不会发生这种情况.似乎R在调用方法之前删除了该变量:

g <- function(x) {
  x <- 2
  UseMethod("g")
}
g.default <- function() x
g()
Error in g.default() : object 'x' not found
Run Code Online (Sandbox Code Playgroud)

有人能解释到底发生了什么吗?

scope r

8
推荐指数
1
解决办法
289
查看次数

刮刮javascript网站

我能够从基本的html页面中删除数据,但是我在下面的网站上搜索时遇到了麻烦.看起来数据是通过javascript呈现的,我不知道如何解决这个问题.如果可能的话,我更愿意使用R来刮,但也可以使用Python.

有什么想法/建议吗?

编辑:我需要获取每个列表的年份/制造商/型号,S/N,价格,位置和简短描述(以"拍卖:"开头).

http://www.machinerytrader.com/list/list.aspx?bcatid=4&DidSearch=1&EID=1&LP=MAT&ETID=5&catid=1015&mdlx=Contains&Cond=All&SO=26&btnSearch=Search&units=imperial

javascript xml screen-scraping r web-scraping

6
推荐指数
1
解决办法
1065
查看次数

轻松查找和替换嵌套列表中的每个匹配项

以此对象为例:

expr <- substitute(mean(exp(sqrt(.)), .))
Run Code Online (Sandbox Code Playgroud)

它是一个嵌套列表.我想找到匹配的每个元素quote(.).

例如,magrittr's解决方案仅匹配调用的第一级:

dots <- c(FALSE, vapply(expr[-1], identical, quote(.), 
                        FUN.VALUE = logical(1)))
dots
[1] FALSE FALSE  TRUE
Run Code Online (Sandbox Code Playgroud)

但我想找到每一个"." 在任意嵌套列表中.在这种特殊情况下,这将是这两个点:

expr[[3]]
expr[[2]][[2]][[2]]
Run Code Online (Sandbox Code Playgroud)

然后应该替换这些点:

expr[[3]] <- as.name("replacement")
expr[[2]][[2]][[2]] <- as.name("replacement")
expr
# mean(exp(sqrt(replacement)), replacement)
Run Code Online (Sandbox Code Playgroud)

你会怎么做?

r function magrittr

6
推荐指数
1
解决办法
249
查看次数