使用代码块时,Knitr会生成一个很好的语法高亮代码,如下所示.
```sql
SELECT column
FROM table
```
Run Code Online (Sandbox Code Playgroud)
有可能实现相同的东西,但sql代码存储在文件中?就像是:
```sql
read_chunk('mycode.sql')
```
Run Code Online (Sandbox Code Playgroud) df %>% split(.$x)
Run Code Online (Sandbox Code Playgroud)
对于大量x的唯一值变得缓慢.如果我们将数据帧手动拆分为较小的子集,然后对每个子集执行拆分,我们将时间减少至少一个数量级.
library(dplyr)
library(microbenchmark)
library(caret)
library(purrr)
N <- 10^6
groups <- 10^5
df <- data.frame(x = sample(1:groups, N, replace = TRUE),
y = sample(letters, N, replace = TRUE))
ids <- df$x %>% unique
folds10 <- createFolds(ids, 10)
folds100 <- createFolds(ids, 100)
Run Code Online (Sandbox Code Playgroud)
跑步microbenchmark
给了我们
## Unit: seconds
## expr mean
l1 <- df %>% split(.$x) # 242.11805
l2 <- lapply(folds10, function(id) df %>%
filter(x %in% id) %>% split(.$x)) %>% flatten # 50.45156
l3 <- lapply(folds100, function(id) df %>% …
Run Code Online (Sandbox Code Playgroud) 如何在rmarkdown生成的pdf_document中获取我的表浮动的标题?
运用
output:
pdf_document:
fig_caption: true
Run Code Online (Sandbox Code Playgroud)
和
```{r, fig.cap='a caption'}
myplot
```
Run Code Online (Sandbox Code Playgroud)
使用myplot和指定的标题生成浮动数字.
如何使用xtable生成的表实现相同的功能?
```{r, results='asis', fig.cap='table caption'}
print(xtable(table), comment = FALSE)
```
Run Code Online (Sandbox Code Playgroud)
我曾尝试在print.xtable中使用floating.environment ='figure',但无济于事.
expand.grid(country = c('Sweden','Norway', 'Denmark','Finland'),
sport = c('curling','crosscountry','downhill')) %>%
mutate(medals = sample(0:3, 12, TRUE)) ->
data
Run Code Online (Sandbox Code Playgroud)
使用 reshape2 的 dcast 只需一行即可实现此目的。使用自定义名称作为边距需要额外的步骤。
library(reshape2)
data %>%
dcast(country ~ sport, margins = TRUE, sum) %>%
# optional renaming of the margins `(all)`
rename(Total = `(all)`) %>%
mutate(country = ifelse(country == "(all)", "Total", country))
Run Code Online (Sandbox Code Playgroud)
我的 dplyr + tidyr 方法很冗长。使用 tidyr 和 dplyr 编写此内容的最佳(紧凑且可读)方式是什么。
library(dplyr)
library(tidyr)
data %>%
group_by(sport) %>%
summarise(medals = sum(medals)) %>%
mutate(country = 'Total') ->
sport_totals
data %>%
group_by(country) %>%
summarise(medals = sum(medals)) …
Run Code Online (Sandbox Code Playgroud) 我想创建一个函数,根据其输入生成一个随机数,并将其应用于布尔向量.该功能将用于生成大约500M元素的测试数据.
f <- function(x, p) ifelse(x, runif(1)^p, runif(1)^(1/p))
f(c(T,T,T,F,F,F), 2)
Run Code Online (Sandbox Code Playgroud)
我得到的不是我想要的.
[1] 0.0054 0.0054 0.0054 0.8278 0.8278 0.8278
Run Code Online (Sandbox Code Playgroud)
我期望输入向量的每个元素都有一个新的随机数,而不是重复的两个随机数.为什么我得到这个结果,我怎样才能得到与之相同的结果
c(runif(3)^2, runif(3)^(1/2))
Run Code Online (Sandbox Code Playgroud)
这会为每个元素产生一个新的随机数
0.0774 0.7071 0.2184 0.8719 0.9990 0.8819
Run Code Online (Sandbox Code Playgroud)