1
我正在使用dplyr
,tidyr
和purrr
进行实验。我的数据是这样的:在嵌套数据帧列上使用mutate_at()生成多个未发生列
library(tidyverse)
set.seed(123)
df <- data_frame(X1 = rep(LETTERS[1:4], 6),
X2 = sort(rep(1:6, 4)),
ref = sample(1:50, 24),
sampl1 = sample(1:50, 24),
var2 = sample(1:50, 24),
meas3 = sample(1:50, 24))
现在dplyr
是真棒,因为我可以做喜欢的事mutate_at()
一次操作多个列。例如:
df <- df %>%
mutate_at(vars(-one_of(c("X1", "X2", "ref"))), funs(first = . - ref)) %>%
mutate_at(vars(contains("first")), funs(second = . *2))
和tidyr
使我的数据作为子表中单列的巢子集:
df <- df %>% nest(-X1)
,并感谢purrr
同时保留原有的数据,我可以总结这些子表在嵌套列:
如何使用purrr
和mutate_at()
产生多个摘要科拉姆ns(在每个嵌套子表中采用不同的(但不是全部)列)?
在这个例子中,我想采取与它。我的词“第二”每列的平均曾希望,这可能会产生新的嵌套列,我可以再unnest()
,但它不工作。
df %>% mutate(mean = map(data, ~ mutate_at(vars(contains("second")),
funs(mean_comp_exp = mean(.)))))
我该如何做到这一点?
你忘了通过数据集作为mutate_at'的'的第一个参数:' 〜mutate_at(.x,vars ...)' – aosmith