最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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)均值的評論 (共 條)

分享到微博請遵守國家法律
鲁山县| 汉川市| 台安县| 象山县| 阳高县| 攀枝花市| 运城市| 龙口市| 常宁市| 河池市| 桓仁| 手游| 安溪县| 西青区| 许昌市| 黄浦区| 永靖县| 银川市| 云浮市| 凤翔县| 怀柔区| 正阳县| 日照市| 清河县| 潞西市| 利川市| 独山县| 黎平县| 安龙县| 滨州市| 嘉黎县| 民和| 文安县| 高雄县| 正蓝旗| 伊川县| 云阳县| 德钦县| 翁源县| 安化县| 邻水|