首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Julia转置分组数据传递列选择器的元组

Julia转置分组数据传递列选择器的元组
EN

Stack Overflow用户
提问于 2022-09-30 21:52:57
回答 1查看 153关注 0票数 3
代码语言:javascript
复制
ds = Dataset([[1, 1, 1, 2, 2, 2],
                        ["foo", "bar", "monty", "foo", "bar", "monty"],
                        ["a", "b", "c", "d", "e", "f"],
                        [1, 2, 3, 4, 5, 6]], [:g, :key, :foo, :bar])

在InmemoryDatasets中,转置函数可以传递列选择器的元组。

代码语言:javascript
复制
transpose(groupby(ds, :g), (:foo, :bar), id = :key)
代码语言:javascript
复制
Result:

g   foo bar monty   foo_1   bar_1   monty_1
identity    identity    identity    identity    identity    identity    identity
Int64?  String? String? String? Int64?  Int64?  Int64?
1   1   a   b   c   1   2   3
2   2   d   e   f   4   5   6

问题:

我如何在DataFrames.jl中做到这一点?

我如何在R和Python中做到这一点?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-01 11:39:37

R中,pivot_wider可以用于整形。

代码语言:javascript
复制
library(tidyr)
pivot_wider(ds, names_from = key, values_from = c(foo, bar))

-output

代码语言:javascript
复制
# A tibble: 2 × 7
      g foo_foo foo_bar foo_monty bar_foo bar_bar bar_monty
  <dbl> <chr>   <chr>   <chr>       <int>   <int>     <int>
1     1 a       b       c               1       2         3
2     2 d       e       f               4       5         6

如果我们想获得相同的列名,我们可以rename

代码语言:javascript
复制
library(dplyr)
library(stringr)
 ds %>% 
  rename("grp"= 'foo', '1' = 'bar') %>% 
  pivot_wider(names_from = key, values_from = c("grp", `1`), 
      names_glue = "{key}_{.value}") %>% 
  rename_with(~ str_remove(.x, "_grp"), ends_with('_grp'))

-output

代码语言:javascript
复制
# A tibble: 2 × 7
      g foo   bar   monty foo_1 bar_1 monty_1
  <dbl> <chr> <chr> <chr> <int> <int>   <int>
1     1 a     b     c         1     2       3
2     2 d     e     f         4     5       6

数据

代码语言:javascript
复制
ds <- structure(list(g = c(1, 1, 1, 2, 2, 2), key = c("foo", "bar", 
"monty", "foo", "bar", "monty"), foo = c("a", "b", "c", "d", 
"e", "f"), bar = 1:6), class = "data.frame", row.names = c(NA, 
-6L))
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73914281

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档