2
私はdata.table
入門書で、のセクションにあります。なぜgを柔軟に保つのですか?例が示されているそれは私のユースケースに関連するのです: Rデータテーブル:連結リストの値が失われるのはなぜですか?
DT[, .(val = list(c(a,b))), by = ID]
# ID val
# 1: b 1,2,3,7,8,9
# 2: a 4, 5,10,11
# 3: c 6,12
は、私が問題に最も可能性の高いいくつかのエントリが
NA
になり
size <- 10
については
set.seed(1234)
size <- 10
ordering_ids <- rep(1:size, sample(1:size, replace=TRUE))
products <- letters[seq_along(ordering_ids)]
k <- data.table(o=ordering_ids, p=products)
を説明するために、最小限の作業例を持っているが、それはありません問題。ビネットから同じコマンドを実行する
k
# o p
# 1: 1 a
# 2: 1 b
# 3: 2 c
# 4: 2 d
# 5: 2 e
# 6: 2 f
# 7: 2 g
# 8: 2 h
# 9: 2 i
# 10: 3 j
# 11: 3 k
# 12: 3 l
# 13: 3 m
# 14: 3 n
# 15: 3 o
# 16: 3 p
# 17: 4 q
# 18: 4 r
# [...]
:受注o=3
のための今
k[o<=4, .(val=list(c(p))), by=o]
# o val
# 1: 1 a,b
# 2: 2 c,d,e,f,g,h,
# 3: 3 j,k,l,m,n,o,
# 4: 4 q,r,s,t,u,v,
、問題は(6周り)size
一定を超えて、私は連結リストのエントリを失うということであり、 val
リストにはすべてのエントリが含まれていません(k
のプリントアウトを参照してください。r
まで)。
ここでの問題は何ですか?どのように修正できますか?
おそらくそれは単に印刷されていません。値を確認するには 'k [、。(val = list(c)))、by = o] $ val [4]'とタイプします。 – www
私は実際にそう思っていましたが、間違って印刷していました – TMOTTM
より簡潔な形式でデータを参照する場合は、 'k [、toString(p)、by = o]'があります。私はここで6つの項目で切り捨てられているリストの問題を提起した:https://github.com/Rdatatable/data.table/issues/1523#issuecomment-349717900 – Frank