我有一个 Dataframe :
location <- c("a", "b", "c", "d", "e", "e")
type <- c("city", "city", "town", "town", "village", "village")
code <- c("123", "112", "83749", "83465", "38484757", "3838891")
country <- c("zz", "zz", "zz", "zz", "zz", "zz")
df <- data.frame(location, type, code, country)
我想按位置分组并转换为字典类似下面的东西:
{location:[[type], [code], [country]]}
我知道使用python应该很简单,但是我不知道如何使用R来实现。我已经尝试了下面的unclass,但是仍然没有得到我所期望的:
unclass(by(df, df$location, function(x) {
tmp <- x$code
setNames(tmp, x$location[1])
tmp
})) -> location_mapping
预期输出:
{
'a':[['city'],['123'],['zz']],
'b':[['city'],['112'],['zz']],
'c':[['town'],['83749'],['zz']],
'd':[['town'],['83465'],['zz']],
'e':[['village'],['38484757','3838891'],['zz']]
}
2条答案
按热度按时间khbbv19g1#
---已编辑
从你更新的问题来看,下面的代码可能就是你想要的,R不像python那样使用花括号,但是为了给更多的函数提供信息,下面的代码可以满足你的需要:
yacmzcpb2#
您可以跨多个列汇总
location
与unique()
的每组。在将其转换为
JSON
之后,可以得到预期的结构。