我一直在尝试%>%
从magrittr
包中越来越受欢迎的操作员.
我已经用得足够了,我设置了一个键盘快捷键来保存我输入:
shift+ command+ .代替space,shift+ 5,shift+ .,shift+ 5, space.
这是很大SublimeTetxt2但Rstudio不允许的服务,如果我Rstudio项目中的工作这是行不通的.
这与作为水獭氧气的赋值算子的alt+ -绑定完全同义.<-
如果有人能指出我在github仓库中编写快捷方式的位置,那么我可以"破解"我自己的,我想这将是一个有用的开始.
我需要加入两个表:
ref
包含时间间隔(从t1
到t2
)以及id
每个间隔的a和space
此间隔发生的位置.
map
包含每个具有结果及其对应的时间间隔(t1
to t2
).res
space
我希望得到/加入的所有间隔(以及他们的分数)map
在区间内下跌ref
到ref
.
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) El Capitan(?finally)提供了一种名为Split View的机制,可以在全屏模式下并排放置两个应用程序.
我想知道在Split View中是否存在,或者我将如何实现一个键盘快捷键来切换/交换窗格.
也就是说,预期的行为触发器是采用左窗格并使其成为右窗格,然后选择右窗格并使其成为左窗格.
我试图理解双打的强制理由:
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.我很好奇为什么.
我确实试图在这里寻找洞察 但没有成功.
我也看了这个相关的问题.
有人可以解释为什么我应该期望上述每个测试值都像他们一样强制执行吗?
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) 此问题使用包含列表列(嵌套)的 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) 我对R比较陌生,但我对Excel和T-SQL非常熟悉.
我有一个简单的数据集,它有一个带有时间的日期和一个与之相关的数值.我想要做的是总结当天的数字值.我在R中找到了一些用于处理时间类型的资源,但是我希望找到类似于提供excel的解决方案(我可以调用一个函数并传入我的日期/时间数据并让它返回小时当天).
任何建议将不胜感激 - 谢谢!
我有一个数据框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实现了这个,我没有遇到过这样的问题.
提前致谢.