У меня есть dataframe, который выглядит, как этотDplyr: как перебрать определенные столбцы, имена которых находятся в списке?
set.seed(10)
sample <- data_frame(group = c('A','B','C','C',NA,'D'),
var_hello = rnorm(6),
var_how = rnorm(6),
var_are = rnorm(6),
var_you = rnorm(6),
var_buddy = rnorm(6))
# A tibble: 6 × 6
group var_hello var_how var_are var_you var_buddy
<chr> <dbl> <dbl> <dbl> <dbl> <dbl>
1 A 0.01874617 -1.2080762 -0.23823356 0.9255213 -1.2651980
2 B -0.18425254 -0.3636760 0.98744470 0.4829785 -0.3736616
3 C -1.37133055 -1.6266727 0.74139013 -0.5963106 -0.6875554
4 C -0.59916772 -0.2564784 0.08934727 -2.1852868 -0.8721588
5 <NA> 0.29454513 1.1017795 -0.95494386 -0.6748659 -0.1017610
6 D 0.38979430 0.7557815 -0.19515038 -2.1190612 -0.2537805
В моем первоначальном наборе данных, есть много, много var_something
переменных.
Я хотел бы group_by('group')
и вычислить mean
подмножества этих var_something
переменных, но даже это подмножество может быть большим. Поэтому я не хочу прибегать к набору вручную каждый mutate
для каждой переменной.
В примере, я заинтересован в переменных в следующем списке ['var_hello', 'var_are']
Я не знаю, как эффективно кодировать, что в dplyr
. В Pandas
, можно было бы просто написать
for var in ['var_hello', 'var_are']:
sample[computation +'_' + var] = sample.groupby('group')[var].agg('mean')
Обратите внимание, как я могу автоматически создать новые имена столбцов (вида computation_var_hello
). Каков наилучший способ достичь этого в dplyr
?
Большое спасибо!
@ProcrastinatusMaximus это не тот случай. Здесь задача только вычислить что-то для подмножества моих столбцов И не нужно вводить их все вручную, как в решении Jake –