.RData,.Rda和.Rds文件之间的主要区别是什么?
进一步来说:
在knitr中,size选项在.Rnw
文件中正常工作,以下代码生成:
\documentclass{article}
\begin{document}
<<chunk1, size="huge">>=
summary(mtcars)
@
\end{document}
Run Code Online (Sandbox Code Playgroud)
但是,我不能让它在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.
我正在使用R
in 自动化一些webscraping,cron
有时我使用R CMD BATCH
,有时我使用Rscript
.
决定使用哪一个我主要关注,如果我想要的.Rout
文件.
但是在SO中读到一些问题的答案(比如这个或者这个)似乎Rscript
是首选R CMD BATCH
.
所以我的问题是:
除了语法略有不同并且R CMD BATCH
保存.Rout
文件而不保存文件Rscript
这两个事实之外,它们之间的主要区别是什么?
我什么时候应该更喜欢一个?更具体地说,在cron
上面提到的工作中,他们中的一个是首选吗?
我还没有使用littler
,它是如何从两个不同的Rscript
和R CMD BATCH
?
我有一个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
.
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,Julia或Python进行繁重的工作,然后使用JavaScript在Web中显示它(例如,使用D3.js).
我最初关注JS的主要是数据可视化/与分析的最终产品的交互,所以我开始研究它.但我想知道:JS库是否专注于数据分析(使用数据框架的概念进行数据处理,统计模型的实现),因此直接在JavaScript中完成一些繁重的工作是可行的?
我正在阅读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
.
所以我的问题是:你怎么能最准确地预先估计这些矢量的大小?
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)
如果在泛型函数内定义变量,则该方法可以使用该变量.例如:
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)
有人能解释到底发生了什么吗?
我能够从基本的html页面中删除数据,但是我在下面的网站上搜索时遇到了麻烦.看起来数据是通过javascript呈现的,我不知道如何解决这个问题.如果可能的话,我更愿意使用R来刮,但也可以使用Python.
有什么想法/建议吗?
编辑:我需要获取每个列表的年份/制造商/型号,S/N,价格,位置和简短描述(以"拍卖:"开头).
以此对象为例:
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)
你会怎么做?