当从data.tables绘制直方图时,maxn不是此j列长度的精确倍数

Sim*_*ker 4 r data.table

我正在尝试从data.table分组的结果绘制直方图,但似乎无法在发生跟随错误之前生成多个图表:

错误[.data.table(DT ,,, hist(V2,break = 2),by = V1):maxn(3)不是此j列长度的精确倍数(2)

这个玩具示例应该有希望证明这个问题

require( data.table ) 
DT = data.table(c(1,1,2,2), c(1,2,3,4))

# This works
DT[,plot(V2,V2), by = V1] 

# This fails after the first plot
DT[,hist(V2, breaks = 2), by = V1] 
Run Code Online (Sandbox Code Playgroud)

关于我做错了什么的任何想法?

Sim*_*lon 5

你需要包装j表达式list.如果我找到(或记住)我将在...中编辑它的原因

DT[, list( hist(V2,breaks = 2) ) , by = V1 ]
Run Code Online (Sandbox Code Playgroud)

  • 我认为这是因为`plot`返回'NULL`,而'hist'则没有.并且导致错误,因为返回的长度对于每个组是不同的.包含在"列表"中会使新列"列表"类型. (3认同)