5 ms·
I was using the first example with a char in the first column. A 4 B 5 B 8 C 9 A 6 How to solve with only a dict? Regarding the 1gram file at
by gwu78 9y ago
I was using the first example with a char in the first column.
A 4
B 5
B 8
C 9
A 6
How to solve with only a dict?
Regarding the 1gram file at https://storage.googleapis.com/books/ngrams/books/googlebooks-eng-all-1gram-20120701-0.gz https://storage.googleapis.com/books/ngrams/books/googlebook...
This is the result I got
3| 1742563279
using
q)\ts d:(!/)(" II";"\t")0:`:1gram
q)\ts 1#desc sum each group d
1897 134218176
371 238872864
or
k)\ts d:(!/)(" II";"\t")0:`:1gram
k)\ts desc:{$[99h=@x;(!x)[i]!r i:>r:. x;0h>@x;'`rank;x@>x]}
k)\ts 1#desc (sum'=:d)
1897 134218176
0 3152
372 238872864
No doubt I must be doing some things wrong.
- qesa 9y agoI actually had it wrong in mine. Wasn't paying attention and had the dictionary the wrong way around. Probably would have been more obvious with the char since you can't sum them... With the reverse thrown in to switch the key/value around we get the correct answer q) 1#desc sum each group (!/) reverse (" II";"\t")0:`:1gram 2006| 22569013 or k) {(&x=|/x)#x}@+/'=:!/|(" II";"\t")0:`:1gram (,2006i)!,22569013i Works the same for the simple example k)e: 4 5 8 9 6!"ABBCA" k){(&x=|/x)#x}@+/'=:e (,"B")!,13