小编sta*_*ant的帖子

最后按组对所有列data.table

我很惊讶地做了以下事情:

R) system.time(lastOrder <- order[,lapply(.SD,tail,1),by="TRADER_ID,EXEC_IDATE"]);
utilisateur     système      écoulé 
       1.45        0.00        1.53 
R) nrow(order)
[1] 75301
R) ncol(order)
[1] 23
Run Code Online (Sandbox Code Playgroud)

认为这很长,然后我做了

R) system.time(lastOrder <- order[,list(test=tail(EXEC_IDATE,1)),by="TRADER_ID,EXEC_IDATE"]);
utilisateur     système      écoulé 
       0.14        0.00        0.14 
Run Code Online (Sandbox Code Playgroud)

据我所知,如果你知道要选择的所有行并且大部分工作都已完成,那么我不明白为什么将这个应用于所有列的时间要长10倍.我在第一段代码上做错了什么,这是我知道按组选择最后一行的唯一方法

r data.table

6
推荐指数
1
解决办法
2457
查看次数

如何在Rterm.exe上更改行长度

我使用R 2.15.2windows XP.

我习惯使用,Rgui.exe但它缺乏我喜欢使用的UNIX标准CTRL+R <=>backward researchCTRL+U <=>erase line......

如果我错过了什么请告诉我!

然后我尝试Rterm.exe(看起来与R.exe我相同),它具有所有这些不错的功能.我找到了如何调整它右键单击窗口顶部以设置高度 - 宽度(就像调整你得到的窗口一样cmd.exe).

问题是,现在我在窗口上看不到多于75字符,最后有一个$:像这样:

R) ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp$

不确定它是否是一个R选项windows,但如果我设置options("width"=180)我可以data.frame在窗口的整个宽度上看到...

不确定发生了什么,我可以修改吗?

我们仍然不知道那个问题的答案,所以我认为有50分钟可以去奥斯卡德莱昂......对他来说对我不好......

cmd r rgui rterm

6
推荐指数
1
解决办法
467
查看次数

准确地从字符 - > POSIXct->字符转换为亚毫秒日期时间

我在文件中有一个字符日期时间列.我加载文件(进入a data.table)并执行需要将列转换为的内容POSIXct.然后我需要将POSIXct值写回文件,但日期时间将不相同(因为它打印不正确).

这种打印/格式化问题是众所周知的,并且已经多次讨论过.我读过一些描述这个问题的帖子.我发现的最权威的答案是针对这个问题给出的.该问题的答案提供了两个应该解决此问题的函数(myformat.POSIXctform),但它们似乎不适用于此示例:

x <- "04-Jan-2013 17:22:08.139"
options("digits.secs"=6)
form(as.POSIXct(x,format="%d-%b-%Y %H:%M:%OS"),format="%d-%b-%Y %H:%M:%OS3")
[1] "04-Jan-2013 17:22:08.138"
form(as.POSIXct(x,format="%d-%b-%Y %H:%M:%OS"),format="%d-%b-%Y %H:%M:%OS4")
[1] "04-Jan-2013 17:22:08.1390"
myformat.POSIXct(as.POSIXct(x,format="%d-%b-%Y %H:%M:%OS"),digits=3)
[1] "2013-01-04 17:22:08.138"
myformat.POSIXct(as.POSIXct(x,format="%d-%b-%Y %H:%M:%OS"),digits=4)
[1] "2013-01-04 17:22:08.1390"
Run Code Online (Sandbox Code Playgroud)

我的sessionInfo:

R version 2.15.2 (2012-10-26)
Platform: x86_64-w64-mingw32/x64 (64-bit)

locale:
[1] LC_COLLATE=English_United Kingdom.1252  LC_CTYPE=English_United Kingdom.1252
[3] LC_MONETARY=English_United Kingdom.1252 LC_NUMERIC=C                        
[5] LC_TIME=C                              

attached base packages:
[1] stats     graphics  grDevices datasets  utils     methods   base     

other attached packages:
[1] fasttime_1.0-0   data.table_1.8.9 …
Run Code Online (Sandbox Code Playgroud)

r posixct

6
推荐指数
2
解决办法
9050
查看次数

当我通过引用分配所有列时,为什么data.table会自动转换

这是我不理解的东西data.table 如果我选择一行,我尝试将此行的所有值设置NA为新行 - data.table被转换为逻辑

#Here is a sample table
DT <- data.table(a=rep(1L,3),b=rep(1.1,3),d=rep('aa',3))
DT
   a   b  d
1: 1 1.1 aa
2: 1 1.1 aa
3: 1 1.1 aa

#Here I extract a line, all the column types are kept... good
str(DT[1])
Classes ‘data.table’ and 'data.frame':  1 obs. of  3 variables:
 $ a: int 1
 $ b: num 1.1
 $ d: chr "aa"
 - attr(*, ".internal.selfref")=<externalptr> 

#Now here I want to set them all to NA...they all become …
Run Code Online (Sandbox Code Playgroud)

r data.table

6
推荐指数
1
解决办法
1126
查看次数

在Windows上使用YouCompleteMe完成Vim

我拼命想让YouCompletMe在windows上工作,作者明确表示没有官方支持windows,所以这很公平.虽然有一个wiki可以在windows上构建它,你会发现在线的1/2人声称他们成功地在Windows上构建它而没有对C/C++的语义支持......

我想知道我是否可以使用ycm_core.pyd其他人编译的,或者是否因为显而易见的原因无效.

我在用 vim7.4 (I have both 32/64 bit versions) + python2.7 + python3.2

c++ vim vim-plugin

6
推荐指数
1
解决办法
8266
查看次数

高效的 list.files

我想做相当于lsin R。说我想要ls /a/b/c/201*/*/d/e/f/*/sameNameFile.gz,这个命令在终端上运行需要 5 秒钟,我尝试使用list.files但它需要一个path参数和需要recursive=TRUE。这需要很长时间...

是否有一个我可以使用的函数(或一个选项list.files)可以让我运行这个ls命令(我知道我可以运行 comamnd 本身,system(cmd,intern=TRUE)但我想要一个 R 解决方案)

r system

6
推荐指数
1
解决办法
2279
查看次数

用fread读取对齐的列数据

我遇到了这样一个文件:

COL1        COL2          COL3
weqw        asrg          qerhqetjw
weweg       ethweth       rqerhwrtjw
rhqerhqerhq qergqer       qerhqew5h
qerh        qergqer       wetjwryerj
Run Code Online (Sandbox Code Playgroud)

我不能直接加载它fread,所以我代替\s+通过,sed比我给了FREAD并解决它.但有没有一种内置的方式来阅读这种数据data.table

r data.table

6
推荐指数
1
解决办法
589
查看次数

是否有一个快速解析日期

对于日期时间,fasttimePOSIXct提供了非常快速的解析

library('fasttime')
library('lubridate')
library('microbenchmark')

# parse character to POSIXct
Sys.setenv(TZ='UTC')
test <- rep('2011-04-02 11:01:00',1e4)
microbenchmark(
  test1 <- fastPOSIXct(test),
  test2 <- fast_strptime(test,format='%Y-%m-%d %H:%M:%S'),
  test3 <- as.POSIXct(test, format='%Y-%m-%d %H:%M:%S'),
  test4 <- ymd_hms(test),
  times=100)
Unit: microseconds
                                                       expr       min        lq      mean    median         uq       max
                                 test1 <- fastPOSIXct(test)   663.123   692.337  1409.448   701.821   712.4965 71231.585
 test2 <- fast_strptime(test, format = "%Y-%m-%d %H:%M:%S")  1026.342  1257.508  1263.157  1264.928  1273.8145  1366.438
    test3 <- as.POSIXct(test, format = "%Y-%m-%d %H:%M:%S")  9865.265 10060.450 10154.651 10145.551 10186.3030 13358.136
                                     test4 …
Run Code Online (Sandbox Code Playgroud)

r date posixct lubridate

6
推荐指数
1
解决办法
1529
查看次数

Why does min(200, 300) returns 300 for integer64 class

I came across the following result that seems very un-intuitive to me:

library(bit64)
x = as.integer64(200)
y = as.integer64(300)
min(x, y)
integer64
[1] 300
min.integer64(x, y)
integer64
[1] 300
Run Code Online (Sandbox Code Playgroud)

Surely there is something obvious that I do not get but can someone point it out to me ?

> sessionInfo()
R version 3.6.1 (2019-07-05)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: CentOS Linux 7 (Core)

Matrix products: default
BLAS:   /usr/lib64/libblas.so.3.4.2
LAPACK: /usr/lib64/liblapack.so.3.4.2

locale:
 [1] LC_CTYPE=en_US.utf8       LC_NUMERIC=C             
 [3] LC_TIME=en_US.utf8        LC_COLLATE=en_US.utf8    
 [5] LC_MONETARY=en_US.utf8    LC_MESSAGES=en_US.utf8 …
Run Code Online (Sandbox Code Playgroud)

r bit64

6
推荐指数
2
解决办法
80
查看次数

在 Rmarkdown 中动态创建选项卡不适用于 ggplot,但适用于plotly

我一直愿意tabrmarkdown.

我创建了一个in_tabs似乎适用于除ggplot情节之外的所有内容的方法。

它的工作方式是创建Rmd在选项卡中显示嵌套列表所需的代码。

以下可重现的示例显示了该问题:

---                                                                                                                                    
title: "test"                                                                                                                          
output: html_document                                                                                                                  
---                                                                                                                                    
                                                                                                                                       
```{r setup, include = FALSE}                                                                                                          
library(ggplot2)                                                                                                                       
library(plotly)                                                                                                                        
l1 <- list(p1 = data.frame(x=1:10, y=1:10))                                                                                            
l2 <- list(p2 = data.frame(x=100:110, y=100:110))                                                                                      
gplot <- function(data) {                                                                                                              
    p <- ggplot(data) + aes(x=x, y=y) + geom_point() + geom_line()                                                                     
    return(p)                                                                                                                          
}                                                                                                                                      
gplotly <- function(data) {                                                                                                            
    p <- ggplot(data) + aes(x=x, y=y) + geom_point() + geom_line()                                                                     
    return(ggplotly(p))                                                                                                                
}                                                                                                                                      
```                                                                                                                                    
                                                                                                                                       
```{r, code, include = FALSE}                                                                                                          
in_tabs <- function(l, …
Run Code Online (Sandbox Code Playgroud)

r ggplot2 knitr r-markdown ggplotly

6
推荐指数
1
解决办法
827
查看次数

标签 统计

r ×9

data.table ×3

posixct ×2

bit64 ×1

c++ ×1

cmd ×1

date ×1

ggplot2 ×1

ggplotly ×1

knitr ×1

lubridate ×1

r-markdown ×1

rgui ×1

rterm ×1

system ×1

vim ×1

vim-plugin ×1