我的資料集中有三個變數(名稱、年齡組、父母總數)。parents_total測量了兩次。現在,我想用pivot_wider,以保持name和age_group,但“計算”用的本T2結果一個新的變數parents_total。
在這個例子中,age_group可能會改變。如果可能的話,如果age_group保持不變,我想計算這個“t2”變數。

相關主題: pivot_wider 問題“`values_from` 中的值不是唯一標識的;輸出將包含串列列”
r 中的“部分”樞軸寬
資料和代碼
df <- structure(list(name = c("Arthur Henry Ra", "Laura Fernanda ",
"Gabriel Mistr<e3>o", "Gabriel Augusto", "Felipe Antonio ", "Ana Beatriz de ",
"Laura Fernanda ", "Pedro Henrique ", "Felipe de Melo ", "Gabriel Augusto",
"Seann Nichollas", "Gabriel Prata N", "Henrique Cesar ", "Rizotony Bogach",
"Henrique Cesar ", "Pedro Henrique ", "Jos<e9> Marques Go", "Jo<e3>o Guilherme ",
"Giovanna Marcia", "Jo<e3>o Pedro Silv", "Ana Luisa Santa", "Heitor Faria da",
"Pedro Domencian", "Heitor Faria da", "Jo<e3>o Guilherme ", "Jo<e3>o Pedro Silv",
"Melissa Aguila ", "Raphael Pescuma", "Jos<e9> Marques Go", "Maria Tereza Si",
"Larissa Fernand", "Pedro Cesar Rib", "Pedro Cesar Rib", "Nicollas Manuel",
"Melissa Aguila ", "Matheus Alexand", "Arthur Henry Ra", "Seann Nichollas",
"Lucas de Lucca ", "Matheus Alexand", "Felipe Antonio ", "Giovanna Marcia",
"Gisela Brand<e3>o ", "Felipe de Melo ", "Gabriel Mistr<e3>o",
"Leticia Silva M", "Larissa Fernand", "Nicollas Manuel", "Isabela Carolin",
"Giovanna Marcia", "Isabela Carolin", "Ana Luisa Santa", "Gisela Brand<e3>o ",
"Jo<e3>o Vitor Lope", "Gabriel Augusto", "Vitor Pontes Ra", "Gabriel Augusto",
"Tainara da Silv", "Larissa Fernand", "Ana Beatriz de ", "Vitor Pontes Ra",
"Matheus Alexand", "Gabriel Prata N", "Luis Augusto Sc", "Larissa Fernand",
"Pedro Domencian", "Raphael Pescuma", "Rizotony Bogach", "Maria Tereza Si",
"Lucas de Lucca ", "Jo<e3>o Pedro Silv", "Luis Augusto Sc", "Jo<e3>o Vitor Lope",
"Tainara da Silv", "Leticia Silva M", "Henrique Cesar "), age_group = structure(c(2L,
5L, 5L, 4L, 1L, 3L, 4L, 5L, 2L, 3L, 2L, 3L, 4L, 5L, 3L, 2L, 6L,
3L, 2L, 2L, 5L, 2L, 7L, 2L, 3L, 3L, 7L, 3L, 5L, 4L, 5L, 3L, 3L,
4L, 4L, 4L, NA, 3L, 2L, 7L, 2L, 2L, 7L, 3L, 5L, 3L, 7L, 4L, 5L,
3L, 5L, 6L, 6L, 2L, 3L, 2L, 4L, 5L, 5L, 2L, 2L, 5L, 3L, 2L, 4L,
7L, 2L, 4L, 4L, 1L, 3L, 3L, 2L, 5L, 4L, 3L), .Label = c("[5,6]",
"(6,8]", "(8,10]", "(10,12]", "(12,14]", "(14,16]", "(16,18]",
"(18,Inf]"), class = "factor"), parents_total = c(177, 178, 91,
128, 138, 146, 185, 177, 97, 79, 167, 160, 96, 160, 138, 165,
86, 183, 94, 118, 109, 144, 114, 132, 169, 106, 21, 131, 137,
123, 84, 190, 186, 162, 103, 180, 172, 135, 129, 189, 122, 115,
122, 66, 96, 151, 95, 179, 196, 122, 182, 112, 147, 133, 125,
152, 112, 162, 168, 100, 110, 189, 136, 193, 140, 131, 117, 186,
98, 158, 103, 94, 147, 148, 144, 156)), class = c("tbl_df", "tbl",
"data.frame"), row.names = c(NA, -76L))
uj5u.com熱心網友回復:
library(dplyr)
dat %>%
group_by(name, age_group) %>%
mutate(tn = paste0("parents_total_t", row_number())) %>%
pivot_wider(c(name, age_group), names_from = tn, values_from = parents_total) %>%
ungroup()
# # A tibble: 58 x 4
# name age_group parents_total_t1 parents_total_t2
# <chr> <fct> <dbl> <dbl>
# 1 "Arthur Henry Ra" (6,8] 177 NA
# 2 "Laura Fernanda " (12,14] 178 NA
# 3 "Gabriel Mistr<e3>o" (12,14] 91 96
# 4 "Gabriel Augusto" (10,12] 128 112
# 5 "Felipe Antonio " [5,6] 138 NA
# 6 "Ana Beatriz de " (8,10] 146 NA
# 7 "Laura Fernanda " (10,12] 185 NA
# 8 "Pedro Henrique " (12,14] 177 NA
# 9 "Felipe de Melo " (6,8] 97 NA
# 10 "Gabriel Augusto" (8,10] 79 125
# # ... with 48 more rows
uj5u.com熱心網友回復:
這是一個沒有旋轉的解決方案。
資料模式首先表明 arrange
然后mutate使用一個新列lead
library(dplyr)
df %>%
arrange(name, parents_total) %>%
group_by(name) %>%
mutate(parents_total2 = lead(parents_total),
parents_total = ifelse(parents_total == last(parents_total), NA, parents_total))
name age_group parents_total parents_total2
<chr> <fct> <dbl> <dbl>
1 "Ana Beatriz de " (6,8] 100 146
2 "Ana Beatriz de " (8,10] NA NA
3 "Ana Luisa Santa" (12,14] 109 112
4 "Ana Luisa Santa" (14,16] NA NA
5 "Arthur Henry Ra" NA 172 177
6 "Arthur Henry Ra" (6,8] NA NA
7 "Felipe Antonio " (6,8] 122 138
8 "Felipe Antonio " [5,6] NA NA
9 "Felipe de Melo " (8,10] 66 97
10 "Felipe de Melo " (6,8] NA NA
# ... with 66 more rows
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/390425.html
上一篇:在R中旋轉更寬的一行
下一篇:如何迭代不同長度的串列?
