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

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

數(shù)據(jù)幀中每個組的平均值

數(shù)據(jù)幀中每個組的平均值

動漫人物 2019-05-30 10:18:44
數(shù)據(jù)幀中每個組的平均值我有一個data.frame我需要計算每個組的平均值(即Month(見下文)。Name     Month  Rate1     Rate2Aira       1      12        23Aira       2      18        73Aira       3      19        45Ben        1      53        19Ben        2      22        87Ben        3      19        45Cat        1      22        87Cat        2      67        43Cat        3      45        32我想要的輸出如下所示,其中Rate1和Rate2是團(tuán)體的手段。請不要理會它的價值,我已經(jīng)為這個例子編造了它。Name       Rate1       Rate2Aira        23.21       12.2Ben         45.23       43.9Cat         33.22       32.2
查看完整描述

4 回答

?
汪汪一只貓

TA貢獻(xiàn)1898條經(jīng)驗 獲得超8個贊

這種類型的操作就是aggregate目的是:

d <- read.table(text='Name     Month  Rate1     Rate2
Aira       1      12        23
Aira       2      18        73
Aira       3      19        45
Ben        1      53        19
Ben        2      22        87
Ben        3      19        45
Cat        1      22        87
Cat        2      67        43
Cat        3      45        32', header=TRUE)aggregate(d[, 3:4], list(d$Name), mean)

  Group.1    Rate1    Rate21    Aira 16.33333 47.000002     Ben 31.33333 50.333333     Cat 44.66667 54.00000

在這里,我們聚合數(shù)據(jù)的第3列和第4列。d,按d$Name,并應(yīng)用mean功能。


或者,使用公式接口:

aggregate(. ~ Name, d[-2], mean)


查看完整回答
反對 回復(fù) 2019-05-30
?
Qyouu

TA貢獻(xiàn)1786條經(jīng)驗 獲得超11個贊

或使用group_by?&?summarise_atdplyr一攬子:

library(dplyr)d?%>%
??group_by(Name)?%>%
??summarise_at(vars(-Month),?funs(mean(.,?na.rm=TRUE)))#?A?tibble:?3?x?3
??Name??Rate1?Rate2??<fct>?<dbl>?<dbl>1?Aira???16.3??47.02?Ben????31.3??50.33?Cat????44.7??54.0

看見?summarise_at用于指定要操作的變量的許多方法。這里,vars(-Month)所有變量?Month.


查看完整回答
反對 回復(fù) 2019-05-30
?
12345678_0001

TA貢獻(xiàn)1802條經(jīng)驗 獲得超5個贊

第三個很好的選擇是使用這個包。data.table,它也具有類data.framework,但是像您正在尋找的操作計算速度要快得多。

library(data.table)mydt <- structure(list(Name = c("Aira", "Aira", "Aira", "Ben", "Ben", "Ben", "Cat", "Cat", "Cat"), Month =
 c(1L, 2L, 3L, 1L, 2L, 3L, 1L, 2L, 3L), Rate1 = c(15.6396600443877, 2.15649279424609, 6.24692918928743, 2.37658797276116, 34.7500663272292,
  3.28750138697048, 29.3265553981065, 17.9821839334431, 10.8639802575958), Rate2 = c(17.1680489538369, 5.84231656330206, 8.54330866437461, 5
  .88415184986176, 3.02064294862551, 17.2053351400752, 16.9552950199166, 2.56058000170089, 15.7496228048122)), .Names = c("Name", "Month",
   "Rate1", "Rate2"), row.names = c(NA, -9L), class = c("data.table", "data.frame"))

現(xiàn)在取所有3個月的比率1和比率2的平均值,對于每個人(姓名):首先,決定你想取哪個列的平均值。

colstoavg <- names(mydt)[3:4]

現(xiàn)在我們使用lapplication對我們想要的列取平均值(Colstoavg)。

mydt.mean <- mydt[,lapply(.SD,mean,na.rm=TRUE),by=Name,.SDcols=colstoavg]

 mydt.mean
   Name     Rate1     Rate21: Aira  8.014361 10.5178912:  Ben 13.471385  8.7033773:  Cat 19.390907 11.755166


查看完整回答
反對 回復(fù) 2019-05-30
  • 4 回答
  • 0 關(guān)注
  • 860 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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