gpt4 book ai didi

r - 在 R 中添加父行作为列标识符

转载 作者:行者123 更新时间:2023-12-05 09:28:15 24 4
gpt4 key购买 nike

我有一个数据导出,其中列出了一个层次结构,但它对我的目的来说并不是真正有用的。以下是数据示例:

<表类="s-表"><头>级别编号<正文>1CO1232PN1232PN1241CO1242PN1252PN1261CO1252PN1272PN128

我希望它看起来像这样:

<表类="s-表"><头>父元素 child <正文>CO123PN123CO123PN124CO124PN125CO124PN126CO125PN127CO125PN128

我有更多的行,每个 parent 都有不同数量的“ child ”。然而, parent 只在数据集中出现一次,而 child 可以构造为多个 parent 。

我正在尝试对每个 parent 进行一些分析,例如 child 的平均数量。

提前致谢。

最佳答案

我们可以使用 pivot_wider reshape 为“宽”格式

library(dplyr)
library(tidyr)
library(data.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 = "data.frame", row.names = c(NA,
-9L))

关于r - 在 R 中添加父行作为列标识符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71574871/

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