第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

用dplyr總結(jié)多列?

用dplyr總結(jié)多列?

浮云間 2019-07-01 16:15:50
用dplyr總結(jié)多列?我有點(diǎn)糾結(jié)于dplyr語(yǔ)法。我有一個(gè)具有不同變量和一個(gè)分組變量的數(shù)據(jù)框架。現(xiàn)在,我想使用R中的dplyr計(jì)算每一組中每列的平均值。df <- data.frame(     a = sample(1:5, n, replace = TRUE),      b = sample(1:5, n, replace = TRUE),      c = sample(1:5, n, replace = TRUE),      d = sample(1:5, n, replace = TRUE),      grp = sample(1:3, n, replace = TRUE))df %>% group_by(grp) %>% summarise(mean(a))這給出了“GRP”表示的每個(gè)組的“a”列的平均值。我的問題是:是否有可能一次獲得每個(gè)組中每一列的方法?還是我要重復(fù)一遍df %>% group_by(grp) %>% summarise(mean(a))每一列?我想要的是df %>% group_by(grp) %>% summarise(mean(a:d)) # "mean(a:d)" does not work
查看完整描述

3 回答

?
藍(lán)山帝景

TA貢獻(xiàn)1843條經(jīng)驗(yàn) 獲得超7個(gè)贊

我們可以用summarize_atsummarize_allsummarize_if在……上面dplyr 0.7.4..我們可以通過(guò)以下方式設(shè)置多個(gè)列和多個(gè)函數(shù)varsfuns參數(shù)如下代碼所示。Funs公式的左邊被指定為摘要vars的后綴.在dplyr 0.7.4summarise_each(和mutate_each)已經(jīng)被廢棄,因此我們不能使用這些函數(shù)。

options(scipen = 100, dplyr.width = Inf, dplyr.print_max = Inf)library(dplyr)packageVersion("dplyr")# [1] ‘0.7.4’set.seed(123)df <- data_frame(
  a = sample(1:5, 10, replace=T), 
  b = sample(1:5, 10, replace=T), 
  c = sample(1:5, 10, replace=T), 
  d = sample(1:5, 10, replace=T), 
  grp = as.character(sample(1:3, 10, replace=T)) # For convenience, specify character type)df %>% group_by(grp) %>% 
  summarise_each(.vars = letters[1:4],
                 .funs = c(mean="mean"))# `summarise_each()` is deprecated.# Use `summarise_all()`, `summarise_at()` or `summarise_if()` instead.# To map `funs` over a selection of variables, use `summarise_at()`# Error: Strings must match column names. Unknown columns: mean

您應(yīng)該更改為以下代碼。以下代碼都有相同的結(jié)果。

# summarise_atdf %>% group_by(grp) %>% 
  summarise_at(.vars = letters[1:4],
               .funs = c(mean="mean"))df %>% group_by(grp) %>% 
  summarise_at(.vars = names(.)[1:4],
               .funs = c(mean="mean"))df %>% group_by(grp) %>% 
  summarise_at(.vars = vars(a,b,c,d),
               .funs = c(mean="mean"))# summarise_alldf %>% group_by(grp) %>% 
  summarise_all(.funs = c(mean="mean"))# summarise_ifdf %>% group_by(grp) %>% 
  summarise_if(.predicate = function(x) is.numeric(x),
               .funs = funs(mean="mean"))# A tibble: 3 x 5# grp a_mean b_mean c_mean d_mean# <chr>  <dbl>  <dbl>  <dbl>  <dbl># 1     1   2.80   3.00    3.6   3.00# 2     2   4.25   2.75    4.0   3.75# 3     3   3.00   5.00    1.0   2.00

您還可以具有多個(gè)函數(shù)。

df %>% group_by(grp) %>% 

  summarise_at(.vars = letters[1:2],

               .funs = c(Mean="mean", Sd="sd"))

# A tibble: 3 x 5

# grp a_Mean b_Mean      a_Sd     b_Sd

# <chr>  <dbl>  <dbl>     <dbl>    <dbl>

# 1     1   2.80   3.00 1.4832397 1.870829

# 2     2   4.25   2.75 0.9574271 1.258306

# 3     3   3.00   5.00        NA       NA


查看完整回答
反對(duì) 回復(fù) 2019-07-01
  • 3 回答
  • 0 關(guān)注
  • 839 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)