小编Ale*_*alm的帖子

dplyr - 获取每年的最新价值

我有一个看起来像这样的tbl_df:

> d
Source: local data frame [3,703 x 3]

         date  value year
1  2001-01-01 0.1218 2001
2  2001-01-02 0.1216 2001
3  2001-01-03 0.1216 2001
4  2001-01-04 0.1214 2001
5  2001-01-05 0.1214 2001
..        ...    ...  ...
Run Code Online (Sandbox Code Playgroud)

几年的日期范围.

我想得到value每年的最新价值(不一定是31-12).有没有办法使用如下的成语:d %>% group_by(year) %>% summarise(...)

r dplyr

16
推荐指数
1
解决办法
6501
查看次数

是否有zparseopts的官方手册?

有官方手册zparseopts吗?

我已经尝试过ZSH手册和谷歌,但没有取得多大成功.

shell zsh

7
推荐指数
1
解决办法
2700
查看次数

lm.summary 的闪亮格式

我正在尝试使用 renderPrint 在闪亮页面中包含模型摘要;代码如下:

# server.R
shinyServer( function(input, output) {
  output$modelSummary <- renderPrint(
    summary(model())
  )
})

# ui.R
fluidPage(
  sidebarLayout(
    mainPanel(textOutput(outputId = "modelSummary"))
  )
)
Run Code Online (Sandbox Code Playgroud)

model()是一个lm存储在反应变量中的非常简单的模型。

输出看起来(在我的 OS X 和 Win 机器上)是这样的:

捕获

我看到两个问题:

  • 没有行尾
  • 星星旁边的标签

如何获得与 R 控制台中相同的干净打印输出?

我运行 R 3.2.2 和闪亮的 0.12.2。

r shiny

6
推荐指数
0
解决办法
2885
查看次数

在R knitr中调用后放置函数定义

快速,可能是愚蠢的问题:在R markdown/knitr文档中,是否可以在实际调用函数后将函数定义放在doc的末尾(例如在附录中)?

r knitr r-markdown

5
推荐指数
1
解决办法
3705
查看次数

magrittr中的成语x < - x%>%

使用magrittr(或dplyr),我发现自己经常使用以下模式:

x <- x %>%
     fun %>%
     fun
Run Code Online (Sandbox Code Playgroud)

是否有常用的快捷方式或成语?我的意思是,一个操作数,例如%^>%,可以写一个:

x %^>% fun ...
Run Code Online (Sandbox Code Playgroud)

r magrittr

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

dplyr recast - 找不到变量

首先,这是tbl_df我正在使用的数据(简化):

> mytbldf
Source: local data frame [6 x 5]

  iso2c country year     var1      var2
1    BI Burundi 2011 4.486265  6.693711
2    BI Burundi 2012 3.939242  5.330326
3    BI Burundi 2013 4.286439  5.747370
4    UG  Uganda 2011 3.998849 10.025680
5    UG  Uganda 2012 4.606198 13.416311
6    UG  Uganda 2013 4.746322 15.981362
Run Code Online (Sandbox Code Playgroud)

我想传播(用tidyr的措辞)年变量var1var2.经过一些(...)迭代后,我发现了一个有效的语法:

> recast(mytbldf, iso2c + country ~ variable + year, measure.var = c("var1","var2"))
  iso2c country var1_2011 var1_2012 var1_2013 var2_2011 var2_2012 var2_2013
1    BI …
Run Code Online (Sandbox Code Playgroud)

r reshape2 dplyr tidyr

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

在R中选择列的规范方法

我正在比较dplyr和"plain R"中的常见"整理"操作(请参阅此处输出源代码以了解我的意思).

我很难找到一个"规范" 和简洁的方法来选择仅使用变量名称的列(通过规范,我的意思是纯粹的普通R,对于对R最不了解的人来说很容易理解(所以没有"巫毒技巧")).

例:

## subset: all columns from "var_1" to "var_2" excluding "var_3"

## dplyr: 
table %>% select(var_1:var_2, -var_3)

## plain R: 
r <- sapply(c("var_1", "var_2", "var_3"), function(x) which(names(table)==x))
table[ ,setdiff(r[1]:r[2],r[3]) ]
Run Code Online (Sandbox Code Playgroud)

有什么建议可以改进普通的R语法吗?


编辑

我实现了一些建议并比较了不同语法的性能,并注意到使用matchsubset导致性能出乎意料地下降:

# plain R, v1
system.time(for (i in 1:100) { 
    r <- sapply(c("size", "country"), function(x) which(names(cran_df)==x))
    cran_df[,r[1]:r[2]] } )
##    user  system elapsed 
##   0.006   0.000   0.007

# plain R, using match
system.time(for …
Run Code Online (Sandbox Code Playgroud)

r dplyr

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

标签 统计

r ×6

dplyr ×3

knitr ×1

magrittr ×1

r-markdown ×1

reshape2 ×1

shell ×1

shiny ×1

tidyr ×1

zsh ×1