小编npj*_*pjc的帖子

%>%Rstudio中的键绑定/键盘快捷键

我一直在尝试%>%magrittr包中越来越受欢迎的操作员.

我已经用得足够了,我设置了一个键盘快捷键来保存我输入:

shift+ command+ .代替space,shift+ 5,shift+ .,shift+ 5, space.

快照

这是很大SublimeTetxt2Rstudio不允许的服务,如果我Rstudio项目中的工作这是行不通的.

所以我的问题是:

你能在Rstudio中定义文本插入键绑定或快捷方式吗?

这与作为水獭氧气的赋值算子的alt+ -绑定完全同义.<-

如果有人能指出我在github仓库中编写快捷方式的位置,那么我可以"破解"我自己的,我想这将是一个有用的开始.

https://github.com/rstudio/rstudio

r rstudio magrittr

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

查找间隔集/高效重叠连接之间的重叠

概述:

我需要加入两个表:

ref 包含时间间隔(从t1t2)以及id每个间隔的a和space此间隔发生的位置.

map包含每个具有结果及其对应的时间间隔(t1to t2).resspace

我希望得到/加入的所有间隔(以及他们的分数)map在区间内下跌refref.

例:

ref <- data.table(space=rep('nI',3),t1=c(100,300,500),t2=c(150,400,600),id=letters[1:3])

map <- data.table(space=rep('nI',241),t1=seq(0,1200,by=5),t2=seq(5,1205,by=5),res=rnorm(241))
Run Code Online (Sandbox Code Playgroud)

他们看着像是:

> ref
space  t1  t2 id
1:    nI 100 150  a
2:    nI 300 400  b
3:    nI 500 600  c

> map
space   t1   t2        res
1:    nI    0    5 -0.7082922
2:    nI    5   10  1.8251041
3:    nI   10   15  0.2076552
4:    nI   15 …
Run Code Online (Sandbox Code Playgroud)

r dplyr data.table

22
推荐指数
1
解决办法
4849
查看次数

在El Capitan的Split View中切换窗格的快捷方式

El Capitan(?finally)提供了一种名为Split View的机制,可以在全屏模式下并排放置两个应用程序.

我想知道在Split View中是否存在,或者我将如何实现一个键盘快捷键来切换/交换窗格.

也就是说,预期的行为触发器是采用左窗格并使其成为右窗格,然后选择右窗格并使其成为左窗格.

macos osx-elcapitan

15
推荐指数
1
解决办法
2897
查看次数

as.logical双重强制的理由是什么?

我试图理解双打的强制理由:

as.logical(c(-1, -0.01, 0, 0.01, 0.1,1:10))
#>  [1]  TRUE  TRUE FALSE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
#> [12]  TRUE  TRUE  TRUE  TRUE
Run Code Online (Sandbox Code Playgroud)

我可以看到强制发生在标量上(符号无关紧要),只有0才被强制转换FALSE.我对此感到惊讶,似乎没有"最接近......"的概念或四舍五入到0L或1L.我很好奇为什么.

我确实试图在这里寻找洞察 但没有成功.

我也看了这个相关的问题.

有人可以解释为什么我应该期望上述每个测试值都像他们一样强制执行吗?

boolean r r-faq

10
推荐指数
1
解决办法
141
查看次数

dplyr中的唯一行:rowbumber()从tbl_dt与tbl_df不一致

en bref:

我想知道如何从工作流data.table的某个地方获取唯一的行dplyr.从v0.2开始我可以使用row_number==1(参见: 使用dplyr删除重复的行)

但!

tbl_df(data) %>% group_by(Var1,Var2) %>% filter(row_number() == 1) 作品.

tbl_dt(data) %>% group_by(Var1,Var2) %>% filter(row_number() == 1)没有.这是一个错误吗?

建立:

library(dplyr)
library(data.table)
library(microbenchmark)

little <- expand.grid(rep(letters,121),rep(letters,121)) # my 10M row dataset.
tbl_dt(little) %>% group_by(Var1,Var2) %>% filter(row_number() == 1)
Run Code Online (Sandbox Code Playgroud)

结果:

> Error in rank(x, ties.method = "first") : 
> argument "x" is missing, with no default
Run Code Online (Sandbox Code Playgroud)

这就是我实际上发现它被打破的方式.我在问:

这样或那样?

我可以使用这个unique.data.table方法:

 dt_u <- function() {
           tbl_dt(little) %>% 
           group_by(Var1,Var2) …
Run Code Online (Sandbox Code Playgroud)

performance r dplyr

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

嵌套与未嵌套(整洁)data.frame 的大小?

此问题使用包含列表列(嵌套)的 data.frame。这让我想知道为什么/是否以这种方式工作有优势。我假设你想最小化每个表使用的内存量......但是当我检查时我很惊讶:

比较嵌套格式与整洁格式的表格大小:

1. 生成 2-col 和 5-col data.frame 的嵌套/整洁版本:

    library(pryr)
    library(dplyr)
    library(tidyr)
    library(ggvis)
    n <- 1:1E6
    df <- data_frame(id = n, vars = lapply(n, function(x)  x <- sample(letters,sample(1:26,1))))
    dfu <- df %>% unnest(vars)
    df_morecols <- data_frame(id = n, other1 = n, other2 = n, other3 = n,
                     vars = lapply(n, function(x)  x <- sample(letters,sample(1:26,1))))
    dfu_morecols <- df_morecols %>% unnest(vars)
Run Code Online (Sandbox Code Playgroud)

他们看着像是:

    head(df)
    #> Source: local data frame [6 x 2]

    #>   id      vars
    #> 1  1 <chr[16]>
    #> 2 …
Run Code Online (Sandbox Code Playgroud)

memory performance r pryr

5
推荐指数
0
解决办法
203
查看次数

R从具有时间字段的日期开始按小时聚合数据帧

我对R比较陌生,但我对Excel和T-SQL非常熟悉.

我有一个简单的数据集,它有一个带有时间的日期和一个与之相关的数值.我想要做的是总结当天的数字值.我在R中找到了一些用于处理时间类型的资源,但是我希望找到类似于提供excel的解决方案(我可以调用一个函数并传入我的日期/时间数据并让它返回小时当天).

任何建议将不胜感激 - 谢谢!

r lubridate dplyr

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

R:使用函数向数据框添加新列

我有一个数据框df,有两列,术语频率.我还有一个术语列表,其中给定的ID存储在一个名为的向量中indices.为了说明这两个信息,我有以下内容:

> head(indices)
   Term
1    hello
256  i
33   the
Run Code Online (Sandbox Code Playgroud)

此外,对于数据框.

> head(df)
   Term  Freq
1  i     24
2  hello 12
3  the   28
Run Code Online (Sandbox Code Playgroud)

我想在df被调用中添加一个列,TermID它只是向量中术语的索引indices.我尝试过使用dplyr::mutate但无济于事.这是我的代码如下

library(dplyr)

whichindex <- function(term){
              ind <- which(indices == as.character(term))
              ind}

mutate(df, TermID = whichindex(Term))
Run Code Online (Sandbox Code Playgroud)

我得到的输出是一个df有一个新列的名称TermID,但所有的值TermID都是相同的.

有人能帮我弄清楚我做错了什么吗?如果你能在[R]中推荐一种更有效的算法,那也很不错.我已经用Python实现了这个,我没有遇到过这样的问题.

提前致谢.

r dplyr

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