五月天青色头像情侣网名,国产亚洲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)均值的評論 (共 條)

分享到微博請遵守國家法律
宣恩县| 平乐县| 丰原市| 扬中市| 安福县| 铜陵市| 凤山县| 玛曲县| 东安县| 肇东市| 绍兴市| 广饶县| 临邑县| 通海县| 婺源县| 扎兰屯市| 浦城县| 孝感市| 友谊县| 九龙城区| 乐陵市| 赤水市| 鹤壁市| 临洮县| 康平县| 万州区| 定结县| 深泽县| 阿拉善左旗| 饶阳县| 德兴市| 顺义区| 闽清县| 湄潭县| 尖扎县| 乌兰察布市| 定安县| 根河市| 加查县| 华容县| 新巴尔虎左旗|