小编J.P*_*ier的帖子

复制后data.table中的参考问题

我有一个复杂的问题,关于data.table嵌套在另一个data.table. 我能够在下面的可重现示例中重现该行为。

对不起,它仍然很长,需要一些时间才能完全理解,但它是我能够产生的更短的时间来指出我的问题。

假设我创建了以下data.table名称,data_1其中包含单个类型的列data.table

library(data.table)

set.seed(20200602L)

data_1 <- data.table(
  foo = replicate(5L, {
    data.table(
      bar = lapply(sample(3L, 5L, replace=TRUE), rpois, 1)
    )
  }, simplify=FALSE)
)

data_1[]
##              foo
##  1: <data.table>
##  2: <data.table>
##  3: <data.table>
##  4: <data.table>
##  5: <data.table>
Run Code Online (Sandbox Code Playgroud)

可以探索foo以下专栏的内容:

data_1[, foo]
##  [[1]]
##       bar
##  1: 4,0,1
##  2:   0,2
##  3: 1,3,2
##  4:   1,1
##  5:     0
##  
##  [[2]] …
Run Code Online (Sandbox Code Playgroud)

r data.table

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

使用 knitr 和 .Rnw 的内联代码格式

我用knitr我的.Rnw文档编织成.tex然后.PDF文件(仍在使用pdflatex)。

我正在寻找一种解决方案,使内联代码和代码块具有完全相同的格式。我可以使用该texttt{}函数来获得相同的字体,但我正在寻找一种方法来获得完全相同的格式(字体、背景颜色、语法突出显示)。

有人有想法吗?

r sweave knitr

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

data.table 中的区间类

我的问题将在以下可重现的示例中得到解释。

首先,让我们加载所需的包并创建一个POSIXct和一个data.table对象。

library(data.table)
library(lubridate)

target_date <- ymd(20180601, tz='America/Montreal')

test <- data.table(
  V1 = seq(1:3),
  V2 = c(ymd(20170421, tz='America/Montreal'),
         ymd(20170702, tz='America/Montreal'),
         ymd(20180113, tz='America/Montreal'))
)
Run Code Online (Sandbox Code Playgroud)

正如我们在下面看到的,一切工作正常。

test[]

##     V1         V2
##  1:  1 2017-04-21
##  2:  2 2017-07-02
##  3:  3 2018-01-13
Run Code Online (Sandbox Code Playgroud)

然后,我创建一个包含Interval对象的新列。

test[, V3:=interval(V2, target_date)]
Run Code Online (Sandbox Code Playgroud)

还在那里,一切都还好。

test[]

##     V1         V2                             V3
##  1:  1 2017-04-21 2017-04-21 EDT--2018-06-01 EDT
##  2:  2 2017-07-02 2017-07-02 EDT--2018-06-01 EDT
##  3:  3 2018-01-13 2018-01-13 EST--2018-06-01 EDT
Run Code Online (Sandbox Code Playgroud)

然后,我想创建两个新列,它们仅在前两行上定义:第一个是列的函数POSIXct,第二个是列的函数 …

r lubridate data.table

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

在 xaringan 演示文稿中使用表情符号

我想知道是否有一种方法可以使用 Markdown 语法在xaringan演示文稿中添加表情符号。一个最小的例子是

---

# Slide #1 :smile:

---
Run Code Online (Sandbox Code Playgroud)

那会产生

幻灯片 #1

谢谢!

r r-markdown xaringan

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

通过引用将所有列合并到data.table中

我想data.table通过引用将两个合并在一起,而不必写下我要合并的所有变量。这是一个了解我的需求的简单示例:

set.seed(20170711)
(a <- data.table(v_key=seq(1, 5), key="v_key"))
#   v_key
#1:     1
#2:     2
#3:     3
#4:     4
#5:     5

a_backup <- copy(a)

(b <- data.table(v_key=seq(1, 5), v1=runif(5), v2=runif(5), v3=runif(5), key="v_key"))
#   v_key          v1        v2          v3
#1:     1 0.141804303 0.1311052 0.354798849
#2:     2 0.425955903 0.3635612 0.950234261
#3:     3 0.001070379 0.4615936 0.359660693
#4:     4 0.453054854 0.5768500 0.008470552
#5:     5 0.951767837 0.1649903 0.565894298
Run Code Online (Sandbox Code Playgroud)

我想在不指定列名的情况下将每个列复制ba引用中。

我可以执行以下操作,但这会无缘无故地复制对象,从而降低程序性能并增加所需的RAM:

(a  <- a[b])
#   v_key          v1        v2          v3
#1:     1 0.141804303 0.1311052 …
Run Code Online (Sandbox Code Playgroud)

r data.table

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

标签 统计

r ×5

data.table ×3

knitr ×1

lubridate ×1

r-markdown ×1

sweave ×1

xaringan ×1