[英]Tidying a Table with grouped columns in header
我从 web 中截取了下表,它在 header 中有 2 个分组列。
structure(list(Provenance = c(NA, "Bourgs", "Rurales"), `Mari Vivant` = c("OUI",
"81", "120"), ...3 = c("NON", "10", "12"), ...4 = c("Pas spécifié",
"2", "5"), `Type d’union` = c("Mariée", "50", "48"), ...6 = c("Mariée après union libre",
"7", "18"), ...7 = c("Union libre et mariage", "5", "4"), ...8 = c("Union libre",
"31", "67")), class = c("tbl_df", "tbl", "data.frame"), row.names = c(NA,
-3L))
我想整理一下数据。 如何在 tidyverse 中或在 R 中使用 data.table 来做到这一点?
我希望有一个包含所有可能的变量组合的小标题(前 10 行)
A tibble: 27 x 8
Provenance `Mari Vivant` `Type d’union` ...3 ...4 ...6 ...7
<chr> <chr> <chr> <chr> <chr> <chr> <chr>
1 Bourgs NON Mariée NA NA NA NA
2 Bourgs NON Mariée après ~ NA NA NA NA
3 Bourgs NON Union libre NA NA NA NA
4 Bourgs NON Union libre e~ NA NA NA NA
5 Bourgs OUI Mariée NA NA NA NA
6 Bourgs OUI Mariée après ~ NA NA NA NA
7 Bourgs OUI Union libre NA NA NA NA
8 Bourgs OUI Union libre e~ NA NA NA NA
9 Bourgs Pas spécifié Mariée NA NA NA NA
10 Bourgs Pas spécifié Mariée après ~ NA NA NA NA
我确实尝试过:
df.all <- tidyr::complete(bouch, Provenance= c("Bourgs", "Rurales"), `Mari Vivant`= c("OUI", "NON","Pas spécifié"),
`Type d’union`= c("Mariée", "Mariée après union libre","Union libre et mariage", "Union libre"),
fill = list(value = NA))
并得到一个在尾部具有值的小标题(如下所示的尾部:)
Provenance `Mari Vivant` `Type d’union` ...3 ...4 ...6 ...7
<chr> <chr> <chr> <chr> <chr> <chr> <chr>
1 Rurales Pas spécifié Mariée après u~ NA NA NA NA
2 Rurales Pas spécifié Union libre NA NA NA NA
3 Rurales Pas spécifié Union libre et~ NA NA NA NA
4 NA OUI Mariée NON Pas ~ Mari~ Unio~
5 Bourgs 81 50 10 2 7 5
6 Rurales 120 48 12 5 18 4
# ... with 1 more variable: ...8 <chr>
不完全是我想要的,即第 4 行。
与Tidyr
选项不同,您可以使用expand.grid
生成数据框:
df <- expand.grid(Provenance = c("Bourgs", "Rurales"),
`Mari Vivant` =c("OUI","NON", "Pas spécifié"),
`Type d’union` =c("Mariée", "Mariée après union libre", "Union libre et mariage", "Union libre"))
'data.frame': 24 obs. of 3 variables:
Provenance Mari Vivant Type d’union
1 Bourgs OUI Mariée
2 Rurales OUI Mariée
3 Bourgs NON Mariée
4 Rurales NON Mariée
5 Bourgs Pas spécifié Mariée
并添加 NA 列:
New_cols = c("..3", "..4", "..6", "..7", "..8")
df[New_cols] <- NA
'data.frame': 24 obs. of 8 variables:
Provenance Mari Vivant Type d’union ..3 ..4 ..6 ..7 ..8
1 Bourgs OUI Mariée NA NA NA NA NA
2 Rurales OUI Mariée NA NA NA NA NA
3 Bourgs NON Mariée NA NA NA NA NA
4 Rurales NON Mariée NA NA NA NA NA
5 Bourgs Pas spécifié Mariée NA NA NA NA NA
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.