AS
Простите.
Size: a a a
AS
PU
АК
ДВ
A
A
PU
IS
> as.data.table(x)[, .(x = x, y = as.data.table(transpose(y)))]
x y.V1 y.V2 y.V3
1: 1 a b <NA>
2: 2 a <NA> <NA>
3: 3 u x z
4: 4 a b <NA>
5: 5 a <NA> <NA>
> tibble(
+ x=1:5,
+ y=list(c('a','b'),c('a'),c("u","x","z"),c('a','b'),c('a'))
+ ) ->jj
> as.data.table(jj)[, .(x = x, y = as.data.table(transpose(y)))]
x y.V1 y.V2
1: 1 a b
2: 2 a
3: 3 u x
4: 4 a b
5: 5 a
Warning messages:
1: Element 2 must be length 2, not 1
2: Element 3 must be length 2, not 3
3: Element 5 must be length 2, not 1
АК
> tibble(
+ x=1:5,
+ y=list(c('a','b'),c('a'),c("u","x","z"),c('a','b'),c('a'))
+ ) ->jj
> as.data.table(jj)[, .(x = x, y = as.data.table(transpose(y)))]
x y.V1 y.V2
1: 1 a b
2: 2 a
3: 3 u x
4: 4 a b
5: 5 a
Warning messages:
1: Element 2 must be length 2, not 1
2: Element 3 must be length 2, not 3
3: Element 5 must be length 2, not 1
> library(tibble)
> library(data.table)
data.table 1.13.2 using 8 threads (see ?getDTthreads). Latest news: r-datatable.com
>
> xx <- tibble(
+ x=1:5,
+ y=list(c('a','b'),c('a'),c("u","x","z"),c('a','b'),c('a'))
+ )
>
>
> as.data.table(xx)[, .(x = x, y = as.data.table(transpose(y)))]
x y.V1 y.V2 y.V3
1: 1 a b <NA>
2: 2 a <NA> <NA>
3: 3 u x z
4: 4 a b <NA>
5: 5 a <NA> <NA>
> packageVersion("data.table")
[1] '1.13.2'
IS
IS
pmt %>% unnest(check) %>% group_by(tr_id) %>% mutate(rank=row_number()) %>% pivot_wider(c(-rank,-check),names_from = rank,values_from = check))
user system elapseddcast
2.027 0.025 2.053
system.time({c transponse
tmp_dt <- as.data.table(pmt);
tmp_dt <- tmp_dt[, list(vals = unlist(check)),by=tr_id];
tmp_dt[, index := 1:.N, by =tr_id];
dcast(tmp_dt, tr_id ~ index, value.var = 'vals', fill = NA) })
user system elapsed
0.185 0.005 0.189
system.time(
as.data.table(pmt)[, .(x= tr_id, y = as.data.table(transpose(check)))])
user system elapsed60к записей, максимальная длинна листа который разворачивали 10
0.086 0.006 0.093
АК
pmt %>% unnest(check) %>% group_by(tr_id) %>% mutate(rank=row_number()) %>% pivot_wider(c(-rank,-check),names_from = rank,values_from = check))
user system elapseddcast
2.027 0.025 2.053
system.time({c transponse
tmp_dt <- as.data.table(pmt);
tmp_dt <- tmp_dt[, list(vals = unlist(check)),by=tr_id];
tmp_dt[, index := 1:.N, by =tr_id];
dcast(tmp_dt, tr_id ~ index, value.var = 'vals', fill = NA) })
user system elapsed
0.185 0.005 0.189
system.time(
as.data.table(pmt)[, .(x= tr_id, y = as.data.table(transpose(check)))])
user system elapsed60к записей, максимальная длинна листа который разворачивали 10
0.086 0.006 0.093
bench::mark
, ибо там ещё память может показать (если R скомпилен с соответствующим флагом) и вызовы сборщика мусора.PU
O9
IS
bench::mark
, ибо там ещё память может показать (если R скомпилен с соответствующим флагом) и вызовы сборщика мусора.IS
PU
PU
IS
PU