how to avoid an optimization warning in data.table

后端 未结 2 627
萌比男神i
萌比男神i 2021-01-14 08:47

I have the following code:

> dt <- data.table(a=c(rep(3,5),rep(4,5)),b=1:10,c=11:20,d=21:30,key=\"a\")
> dt
    a  b  c  d
 1: 3  1 11 21
 2: 3  2 1         


        
2条回答
  •  时光取名叫无心
    2021-01-14 09:03

    This solution removes the message about the named elements. But you have to put the names back afterwards.

    require(data.table)
    options(datatable.verbose = TRUE)
    
    dt <- data.table(a=c(rep(3,5),rep(4,5)),b=1:10,c=11:20,d=21:30,key="a")
    
    dt[, c(.N, unname(lapply(.SD, sum))), by = "a"]
    

    Output

    > dt[, c(.N, unname(lapply(.SD, sum))), by = "a"]
    Finding groups (bysameorder=TRUE) ... done in 0secs. bysameorder=TRUE and o__ is length 0
    Optimization is on but j left unchanged as 'c(.N, unname(lapply(.SD, sum)))'
    Starting dogroups ... done dogroups in 0.001 secs
       a V1 V2 V3  V4
    1: 3  5 15 65 115
    2: 4  5 40 90 140
    

提交回复
热议问题