R 按组变量高效地扩展data.table中的网格

R 按组变量高效地扩展data.table中的网格,r,data.table,R,Data.table,我想从data.table创建一个扩展网格。用于创建扩展网格的向量由分组变量定义 这将是我的示例数据集: 库(data.table) dt_样本组值 #>1:a #>2:a-B #>3:AC #>4:a-D #>5:BE #>6:df 我希望实现以下目标: ##如果可能的话,我想要一种自动的一步方法 a 3:C E F #>4:def 由(v0.3.0)于2020年1月13日创建 我已经想到了一些方法来完成前面的工作,使用dcast或for循环。但是,我觉得在data.table中可以更有效

我想从
data.table
创建一个扩展网格。用于创建扩展网格的向量由分组变量定义

这将是我的示例数据集:

库(data.table)
dt_样本组值
#>1:a
#>2:a-B
#>3:AC
#>4:a-D
#>5:BE
#>6:df
我希望实现以下目标:

##如果可能的话,我想要一种自动的一步方法
a 3:C E F
#>4:def
由(v0.3.0)于2020年1月13日创建


我已经想到了一些方法来完成前面的工作,使用
dcast
for
循环。但是,我觉得在
data.table
中可以更有效地完成这项工作。欢迎提供任何建议。

您可以使用和执行以下操作:


您可以使用和执行以下操作:


这个例子似乎很直截了当,因为
a
组中的因子数量是其他组中因子数量的倍数,但是如果(比如)b有三个因子,你认为会发生什么呢?@r2evans这就是我问的原因。MkWTF使用
split
的答案似乎非常简单和通用。老实说,我以前不知道
split
函数。这个例子似乎很简单,因为
a
组中的因子数是其他组中因子数的倍数,但是如果(假设)
b
有三个因子,你认为会发生什么呢?@r2evans这就是我问的原因。MkWTF使用
split
的答案似乎非常简单和通用。老实说,我以前不知道
split
函数。非常感谢!我不知道
split
函数。调用可以包含在
数据表中
上下文也
dt_示例[,do.call(CJ,split(value,group))]
非常感谢!我不知道
split
函数。调用可以包含在
数据表中
上下文中也可以
dt_示例[,do.call(CJ,split(value,group))]
do.call(CJ, split(dt_sample$value, dt_sample$group))