.SD看起来很有用,但我真的不知道我在用它做什么.它代表什么?为什么会有前一个句号(句号).当我使用它时会发生什么?

我读到:

这是否意味着女儿data.tables会被保存在内存中以备下次手术?

推荐答案

.SD代表"Subset of Data.table".对最初的"."没有什么意义,只是它使得与用户定义的列名发生冲突的可能性更大.

如果这是你的数据.表:

DT = data.table(x=rep(c("a","b","c"),each=2), y=c(1,3), v=1:6)
setkey(DT, y)
DT
#    x y v
# 1: a 1 1
# 2: b 1 3
# 3: c 1 5
# 4: a 3 2
# 5: b 3 4
# 6: c 3 6

这样做可以帮助你了解.SD是什么:

DT[ , .SD[ , paste(x, v, sep="", collapse="_")], by=y]
#    y       V1
# 1: 1 a1_b3_c5
# 2: 3 a2_b4_c6

基本上,by=y语句会 destruct 原始数据.表分为这两个子data.tables

DT[ , print(.SD), by=y]
# <1st sub-data.table, called '.SD' while it's being operated on>
#    x v
# 1: a 1
# 2: b 3
# 3: c 5
# <2nd sub-data.table, ALSO called '.SD' while it's being operated on>
#    x v
# 1: a 2
# 2: b 4
# 3: c 6
# <final output, since print() doesn't return anything>
# Empty data.table (0 rows) of 1 col: y

然后依次对它们进行操作.

当它在任何一个上运行时,它允许您使用昵称/手柄/符号.SD来引用当前sub-data.table.这非常方便,因为您可以访问和操作列,就像您坐在命令行上处理单个数据一样.名为.SD的桌子...除此之外,data.table将对每一个由组合键定义的sub-data.table执行这些操作,"粘贴"它们并在单个data.table中返回结果!

R相关问答推荐

如何按行和列组合多个格式?

使用R中的gt对R中的html rmarkdown文件进行条件格式设置表的单元格

如何对数据集进行逆向工程?

使用R中相同值创建分组观测指标

如何在Chart_Series()中更改轴值的 colored颜色 ?

标识R中多个列中缺少的唯一值

如果某些列全部为NA,则更改列

将小数分隔符放在R中的前两位数字之后

有效识别长载体中的高/低命中

R Read.table函数无法对制表符分隔的数据正常工作

TreeNode打印 twig 并为其上色

如何创建累加到现有列累计和的新列?

R+reprex:在呈现R标记文件时创建可重现的示例

使用R将简单的JSON解析为嵌套框架

如何根据其他列中的两个条件来计算数据帧中的行之间的差异?

如何将宽格式的患者信息数据高效地转换为患者计数的时间序列?

在使用SliderInput In Shiny(R)设置输入数据的子集时,保留一些情节痕迹

Ggplot2如何找到存储在对象中的残差和拟合值?

在ggplot2图表中通过端点连接点

如何将字符类对象中的数据转换为R中的字符串