我有一个复杂的问题,关于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) 我用knitr我的.Rnw文档编织成.tex然后.PDF文件(仍在使用pdflatex)。
我正在寻找一种解决方案,使内联代码和代码块具有完全相同的格式。我可以使用该texttt{}函数来获得相同的字体,但我正在寻找一种方法来获得完全相同的格式(字体、背景颜色、语法突出显示)。
有人有想法吗?
我的问题将在以下可重现的示例中得到解释。
首先,让我们加载所需的包并创建一个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,第二个是列的函数 …
我想知道是否有一种方法可以使用 Markdown 语法在xaringan演示文稿中添加表情符号。一个最小的例子是
---
# Slide #1 :smile:
---
Run Code Online (Sandbox Code Playgroud)
那会产生
谢谢!
我想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)
我想在不指定列名的情况下将每个列复制b到a引用中。
我可以执行以下操作,但这会无缘无故地复制对象,从而降低程序性能并增加所需的RAM:
(a <- a[b])
# v_key v1 v2 v3
#1: 1 0.141804303 0.1311052 …Run Code Online (Sandbox Code Playgroud)