数据争论扩大和巩固行

问题描述 投票:0回答:1

我想加宽一些行,然后使用 R 合并这些行。

组号 角色 回报
group_1 person_1 A 10
group_1 person_2 20
group_2 person_3 A 14
group_2 person_4 14
group_3 person_5 A 34
group_3 person_6 48

当我使用

pivot_wider(names_from = Role, values_from = c(Person, Payoff))
时,数据看起来像这样:

组号 A 回报 B 回报
group_1 person_1 NA 10 NA
group_1 NA person_2 NA 20
group_2 person_3 NA 14 NA
group_2 NA person_4 NA 14
group_3 person_5 NA 34 NA
group_3 NA person_6 48

不过,我要数据看下表。我应该使用不同的命令还是应该使用其他方式

pivot_wider

组号 A 回报 B 回报
group_1 person_1 person_2 10 20
group_2 person_3 person_4 14 14
group_3 person_5 person_6 34 48

我也试过类似下面命令的代码

data %>%
  group_by('session_group_id') %>% 
  pivot_wider(names_from = Role, values_from = c(Person, Payoff))

data %>%
  group_by('session_group_id') %>%
  pivot_wider(names_from = Role,
              values_from = c(Person, Payoff),
              values_fn = list)
r tidyverse data-manipulation data-wrangling
1个回答
2
投票

使用你的代码,我得到了正确的答案(

tidyr
v 1.3.0,
dplyr
v 1.1.0):

library(tidyr)
library(dplyr)
dat <- read.table(header=TRUE, 
           text="
Group_ID    Person  Role    Payoff
group_1 person_1    A   10
group_1 person_2    B   20
group_2 person_3    A   14
group_2 person_4    B   14
group_3 person_5    A   34
group_3 person_6    B   48
")
dat %>% pivot_wider(names_from = Role, values_from = c(Person, Payoff))
#> # A tibble: 3 × 5
#>   Group_ID Person_A Person_B Payoff_A Payoff_B
#>   <chr>    <chr>    <chr>       <int>    <int>
#> 1 group_1  person_1 person_2       10       20
#> 2 group_2  person_3 person_4       14       14
#> 3 group_3  person_5 person_6       34       48

创建于 2023-04-03 与 reprex v2.0.2

© www.soinside.com 2019 - 2024. All rights reserved.