首页 > 解决方案 > 将数据框中的特定列转换为 R 中的字典/列表

问题描述

假设我有一个数据框:

a <- c('zz','yy','xx','qq','pp')
b <- c('1','2','2','3','1')
ab <- data.frame(a,b)

这给出了:

   a b
1 zz 1
2 yy 2
3 xx 2
4 qq 3
5 pp 1

我想把它变成 R 中的字典/嵌套列表。我可以想象在 python 中,结果如下所示:

ab_dict = {'1':["zz","pp"],'2':["yy","xx"],'3':["qq]}

这如何在 R 中实现?我希望结果在之后的 for 循环中是可迭代的。

我在stackoverflow上找不到任何解决方案,所以如果有人问过类似的问题,我深表歉意!

标签: rlistdictionary

解决方案


一个选项是split'b' 到 'ab' 列并使用toJSONfromjsonlite

library(jsonlite)
toJSON(split(as.character(ab$a), ab$b))
#{"1":["zz","pp"],"2":["yy","xx"],"3":["qq"]} 

推荐阅读