首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于唯一标识符转换数据以将多行合并到一行中

基于唯一标识符转换数据以将多行合并到一行中
EN

Stack Overflow用户
提问于 2021-10-04 13:52:47
回答 3查看 44关注 0票数 0

我正在使用英国理解协会的数据集,并尝试链接/合并父母和孩子的信息。

父母和孩子的信息在一个单独的数据文件中,所以我通过使用父母的唯一标识符和青年文件中的“母亲/父亲标识符”将孩子文件与父母信息链接起来。在同时包含父信息和子信息的新数据框中,存在重复

代码语言:javascript
复制
Personal_ID <- c(101,102) 
Youth_Personal_ID <- c(200,200)
Youth_reading <- c("once a week", "once a week")
Parent_education <- c("bachelors","HS diploma" )

example <- data.frame(Youth_Personal_ID,Personal_ID,Parent_education,Youth_reading)
代码语言:javascript
复制
  Youth_Personal_ID Personal_ID Parent_education Youth_reading
1               200         101        bachelors   once a week
2               200         102       HS diploma   once a week

有没有一种方法可以通过使用父标识符像这样重新构造它?

代码语言:javascript
复制
Youth_Personal_ID Youth_reading Mother_education Father_education
1               200   once a week        bachelors       HS diploma
EN

回答 3

Stack Overflow用户

发布于 2021-10-04 13:58:38

如果每个孩子总是有两个id,并且个人id的顺序总是‘母亲’和‘父亲’,你可以这样做-

代码语言:javascript
复制
library(dplyr)
library(tidyr)

example %>%
  group_by(Youth_Personal_ID) %>%
  mutate(Personal_ID = c('Mother_education', 'Father_education')) %>%
  pivot_wider(names_from = Personal_ID, values_from = Parent_education)

# Youth_Personal_ID Youth_reading Mother_education Father_education
#              <dbl> <chr>         <chr>            <chr>           
#1               200 once a week   bachelors        HS diploma    
票数 0
EN

Stack Overflow用户

发布于 2021-10-04 14:00:38

由于您最多只有2个父ID,因此这应该是可行的,

代码语言:javascript
复制
library(dplyr)

example %>% 
 group_by(Youth_Personal_ID) %>% 
 mutate(father_ed = last(Parent_education)) %>% 
 slice(1L)
票数 0
EN

Stack Overflow用户

发布于 2021-10-04 16:32:16

我们也可以这样做

代码语言:javascript
复制
library(dplyr)
library(tidyr)
library(stringr)
example %>% 
   mutate(Personal_ID = rep(str_c(c('Mother_', 'Father_'), 'education'), 
         length.out = n())) %>% 
   pivot_wider(names_from = Personal_ID, values_from = Parent_education)
# A tibble: 1 × 4
  Youth_Personal_ID Youth_reading Mother_education Father_education
              <dbl> <chr>         <chr>            <chr>           
1               200 once a week   bachelors        HS diploma      
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69437202

复制
相关文章

相似问题

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