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