【发布时间】:2021-06-09 01:45:30
【问题描述】:
#pivot wider
> tb_chol3 <- tb_chol2 %>% pivot_wider(names_from = visit, values_from = value)
> tb_chol3
# A tibble: 2,800 x 7
SUBJID treatment treatment2 lipid_cat Baseline visit2 visit3
<chr> <chr> <dbl> <chr> <dbl> <dbl> <dbl>
1 004-018 rosujet5 0 LDL 83 57 63
2 004-018 rosujet5 0 HDL 61 66 73
3 004-018 rosujet5 0 TG 99 154 165
4 004-018 rosujet5 0 Total 164 154 169
5 005-001 rosujet10 0 LDL 38 42 43
6 005-001 rosujet10 0 HDL 43 30 33
7 005-001 rosujet10 0 TG 95 150 104
8 005-001 rosujet10 0 Total 100 99 97
9 005-002 rosujet10 0 LDL 130 75 77
10 005-002 rosujet10 0 HDL 46 46 43
# ... with 2,790 more rows
> #nest by lipid cat
> chol_nested <- tb_chol3 %>% group_by(lipid_cat) %>% nest()
> chol_nested
# A tibble: 4 x 2
# Groups: lipid_cat [4]
lipid_cat data
<chr> <list>
1 LDL <tibble [700 x 6]>
2 HDL <tibble [700 x 6]>
3 TG <tibble [700 x 6]>
4 Total <tibble [700 x 6]>
>
大家好。我想通过使用 map 来改变 tibbles 列表中的列(在这个例子中,tibbles 列表是 chol_nested$data)。
我想看看(visit2 和基线)和(visit3 和基线)之间的区别
我写这样的代码。但它不起作用。
#calculate diff using map
> chol_nested %>% map(data, ~ .x %>% mutate(visit2_diff = visit2 - Baseline, visit3_diff = visit3 - Baseline))
$lipid_cat
[1] ".x[[i]]"
[2] "~.x %>% mutate(visit2_diff = visit2 - Baseline, visit3_diff = visit3 - Baseline)"
$data
[1] ".x[[i]]"
[2] "~.x %>% mutate(visit2_diff = visit2 - Baseline, visit3_diff = visit3 - Baseline)"
Warning messages:
1: In .f(.x[[i]], ...) : data set ‘.x[[i]]’ not found
2: In .f(.x[[i]], ...) :
data set ‘~.x %>% mutate(visit2_diff = visit2 - Baseline, visit3_diff = visit3 - Baseline)’ not found
3: In .f(.x[[i]], ...) : data set ‘.x[[i]]’ not found
4: In .f(.x[[i]], ...) :
data set ‘~.x %>% mutate(visit2_diff = visit2 - Baseline, visit3_diff = visit3 - Baseline)’ not found
>
期望的输出是
SUBJID treatment treatment2 Baseline visit2 visit3 visit2_diff visit3_diff
<chr> <chr> <dbl> <dbl> <dbl> <dbl>
1 004-018 rosujet5 0 83 57 63
2 004-018 rosujet5 0 61 66 73
3 004-018 rosujet5 0 99 154 165
4 004-018 rosujet5 0 164 154 169
5 005-001 rosujet10 0 38 42 43
6 005-001 rosujet10 0 43 30 33
7 005-001 rosujet10 0 95 150 104
8 005-001 rosujet10 0 100 99 97
9 005-002 rosujet10 0 130 75 77
10 005-002 rosujet10 0 46 46 43
与上面所有的lipid_cat(LDL,HDL,TG,Total) 相同的变量。
我是 purrr 包的新手,但我真的很想习惯它。
欢迎任何建议,非常感谢您的帮助!
谢谢!
【问题讨论】: