五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

【Tidyverse優(yōu)雅編程】跨表計算新列:變時間段內(nèi)指標(biāo)均值

2022-06-16 13:08 作者:張敬信老師  | 我要投稿

這是比較復(fù)雜的數(shù)據(jù)操作問題,來自:

R語言怎么計算任意兩個日期之間的滑動平均?https://www.zhihu.com/question/537707630/answer/2529828627

1 問題轉(zhuǎn)述

主表?df?是醫(yī)療檔案,包括病人 ID,地理位置,體檢時間1,體檢時間2

現(xiàn)在想計算一個新列:病人所在地理位置體檢時間1體檢時間2的時間段內(nèi),平均的PM2.5值

需要的氣象數(shù)據(jù)來自輔表?weather,包括地理位置,全部日期每一天的?PM2.5值

2 先編一個小的演示數(shù)據(jù)

主表,醫(yī)療檔案:

輔表,氣象數(shù)據(jù):

3 解決問題

【程序說明】:

(1)先對輔表氣象數(shù)據(jù)?weather?,關(guān)于位置?Location?來個分組嵌套(列表列,這樣一個?Location?就占一行了,從而讓操作邏輯更清晰:

data列中的元,比如第 1 個,是這個樣子的:

(2)我們關(guān)心的是主表體檢數(shù)據(jù)?df,在它基礎(chǔ)上做計算,所以右連接?df?進(jìn)來:

(3)關(guān)鍵步驟是,用?mutate?計算新列,需要在?data, T1, T2?這 3 列上做三元逐行迭代:

  • 根據(jù)?data$time?是否落在?T1, T2?構(gòu)成的區(qū)間, 對?data?篩選行

  • 再取出?PM25?求平均,結(jié)果返回數(shù)值

這就需要?pmap_dbl?,把該迭代邏輯,寫成一個三元函數(shù),自變量分別用?..1, ..2, ..3?指代。

具體實(shí)現(xiàn),可以先把函數(shù)寫出來,取出一組數(shù)據(jù)調(diào)試通過,再改寫成?purrr?公式形式:

??

注:我開始想到的是,只在?data?上做一元?map?迭代, 直接使用?T1, T2,但是不行,因?yàn)檫@樣每次迭代用的是整個?T1, T2?列向量。

再一個, 管道里面套管道話,我習(xí)慣內(nèi)層管道用自帶的管道符:?|>

附錄

我主張的數(shù)據(jù)編程思維

我的 R 語言新書:

https://zhuanlan.zhihu.com/p/198185888

已經(jīng)進(jìn)入出版流程,預(yù)計?22年8月?能與讀者見面。更多相關(guān)資源請參閱:

https://zhuanlan.zhihu.com/p/467134727


【Tidyverse優(yōu)雅編程】跨表計算新列:變時間段內(nèi)指標(biāo)均值的評論 (共 條)

分享到微博請遵守國家法律
萝北县| 华亭县| 渭源县| 宜春市| 彭山县| 平果县| 乳山市| 铅山县| 湖南省| 耿马| 武隆县| 化隆| 克拉玛依市| 通山县| 雷州市| 贺兰县| 南郑县| 肥乡县| 神木县| 石家庄市| 娄底市| 葵青区| 泽库县| 京山县| 洛扎县| 台南县| 三河市| 蒙城县| 上饶县| 乐陵市| 凭祥市| 南漳县| 全椒县| 昌乐县| 宕昌县| 芦溪县| 永安市| 织金县| 内乡县| 启东市| 永清县|