У меня есть данные в data.table, например, так:R - возвращает вложенный список из сгруппированных данных
#Load in example data
library(jsonlite)
library(data.table)
json<-'[{"id":"a","group":"foo","value":2.7408},{"id":"b","group":"foo","value":6.5785},{"id":"c","group":"foo","value":5.4263},{"id":"d","group":"bar","value":5.2845},{"id":"e","group":"bar","value":4.1038},{"id":"f","group":"bar","value":3.7421},{"id":"g","group":"bar","value":2.7618},{"id":"h","group":"bar","value":3.7211},{"id":"i","group":"baz","value":4.1616},{"id":"j","group":"baz","value":3.8822}]'
example<-data.table(fromJSON(json))
example
id group value
1: a foo 2.7408
2: b foo 6.5785
3: c foo 5.4263
4: d bar 5.2845
5: e bar 4.1038
6: f bar 3.7421
7: g bar 2.7618
8: h bar 3.7211
9: i baz 4.1616
10: j baz 3.8822
То, что я хотел бы, чтобы извлечь вложенный список идентификаторов для каждой группы. Я хотел бы иметь внутренние списки, названные из имени группы. Возможно, пример даст ясность:
# This is what I would like to accomplish programmatically.
# Is there a data.table way to do this? How about plyr?
# It seems like a pretty straightforward task, so I imagine
# there is a method for this which I don't know about.
foo<-example$id[example$group=='foo']
bar<-example$id[example$group=='bar']
baz<-example$id[example$group=='baz']
list(foo=foo,bar=bar,baz=baz)
$foo
[1] "a" "b" "c"
$bar
[1] "d" "e" "f" "g" "h"
$baz
[1] "i" "j"
Заранее благодарим за любые предложения.
Попробуйте 'split (пример $ id, example $ group)'. – nicola
Отлично! Спасибо. У меня явно есть много функций, чтобы учиться. – Tsaari