gpt4 book ai didi

r - 将列名转换为行值并求和

转载 作者:行者123 更新时间:2023-12-03 19:41:04 24 4
gpt4 key购买 nike

我有这个数据框-

input_output <- data.frame(ip_op = c('input_0', 'input_2', 'input_9', 'output_1', 'output_2', 'output_3'), a = c(1,32, 12, 246, 901, 837), b = c(284, 23, 19, 284, 9, 12), c = c(12, 8940, 379, 490, 0, 12))

ip_op a b c
1 input_0 1 284 12
2 input_2 32 23 8940
3 input_9 12 19 379
4 output_1 246 284 490
5 output_2 901 9 0
6 output_3 837 12 12
我想创建以下数据框-
input_output
type input output
1 a 45 1984
2 b 326 305
3 c 9331 502
我试过使用 transpose但列名变成了行名。如何转换此数据框?

最佳答案

这是否有效:

> library(dplyr)
> library(tidyr)
> input_output %>% pivot_longer(-ip_op) %>% mutate(ip_op = str_extract(ip_op, ('input|output'))) %>% group_by(ip_op, name) %>% summarise(value = sum(value)) %>%
+ pivot_wider(names_from = ip_op, values_from = value) %>% rename(type = name)
`summarise()` regrouping output by 'ip_op' (override with `.groups` argument)
# A tibble: 3 x 3
type input output
<chr> <dbl> <dbl>
1 a 45 1984
2 b 326 305
3 c 9331 502
>

关于r - 将列名转换为行值并求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64405298/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com