我有一个数据导出,它列出了一个层次 struct ,但它并不能真正用于我的目的.以下是一个数据示例:

Level Number
1 CO123
2 PN123
2 PN124
1 CO124
2 PN125
2 PN126
1 CO125
2 PN127
2 PN128

我希望它看起来像这样:

Parent Child
CO123 PN123
CO123 PN124
CO124 PN125
CO124 PN126
CO125 PN127
CO125 PN128

我有很多行,每一位家长都有不同数量的"子元素".然而,父项只在数据集中出现一次,而子项可以被构造为多个父项.

我试图对每一位家长进行一些分析,比如子元素的平均数量.

提前谢谢.

推荐答案

我们可以使用pivot_wider来reshape 为"宽"格式

library(dplyr)
library(tidyr)
library(数据.table)
df1 %>% 
  mutate(nm1 = case_when(Level == 1 ~ "Parent", TRUE ~ "Child"),
    rn = rowid(Level)) %>%
  pivot_wider(names_from = nm1, values_from = Number) %>%  
  fill(everything(), .direction = "downup") %>% 
  filter(Level != 1) %>%
   select(-rn,-Level) 

-输出

# A tibble: 6 × 2
  Parent Child
  <chr>  <chr>
1 CO123  PN123
2 CO123  PN124
3 CO124  PN125
4 CO124  PN126
5 CO125  PN127
6 CO125  PN128

数据

df1 <- structure(list(Level = c(1L, 2L, 2L, 1L, 2L, 2L, 1L, 2L, 2L), 
    Number = c("CO123", "PN123", "PN124", "CO124", "PN125", "PN126", 
    "CO125", "PN127", "PN128")), class = "数据.frame", row.names = c(NA, 
-9L))

R相关问答推荐

列出用m n个值替换来绘制n个数字的所有方法(i.o.w.:R中大小为n的集合的所有划分为m个不同子集)

抖动点与嵌套类别变量箱形图的位置不对齐

用黄土法确定区间

如何将dygraph调用到R Markdown作为一个shiny 的react 对象的参数?

在特定Quarto(reveal.js)幻灯片上隐藏徽标

使用整齐的计算(curl -curl )和杂音

如何对2个列表元素的所有组合进行操作?

LOF中的插图短文字幕

哪一行和行和 Select 特定行,但是考虑到Nas

如何在ggplot2中绘制具有特定 colored颜色 的连续色轮

以NA为通配符的R中的FULL_JOIN以匹配其他数据中的任何值.Frame

仅在R中的数据集开始和结束时删除所有 Select 列的具有NA的行

如何在使用箭头R包(箭头::OPEN_DATASSET)和dplyr谓词时编写具有整齐计算的函数?

解析嵌套程度极高的地理数据

有没有办法定制Plot(allEffects())面板标题?

有没有办法将基于每个值中出现的两个关键字或短语的字符串向量重新编码为具有这两个值的新向量?

是否有可能从边界中找到一个点值?

使用LAG和dplyr执行计算,以便按行和按组迭代

将仪表板中的值框大小更改为Quarto

汇总数据:在跨越()all_of()Dynamic_list_of_vars=>;所选内容不能有缺失值的汇总()中出错