国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

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

分享到微博請遵守國家法律
河间市| 本溪市| 轮台县| 兴隆县| 岢岚县| 古浪县| 陆河县| 三台县| 恩施市| 乌拉特后旗| 临泉县| 靖江市| 兴隆县| 九江市| 元氏县| 进贤县| 阿坝| 田东县| 平湖市| 瑞丽市| 漳浦县| 柯坪县| 宁陵县| 观塘区| 泰和县| 余庆县| 辽宁省| 张家界市| 邯郸市| 从化市| 青铜峡市| 云浮市| 伊吾县| 乃东县| 宁夏| 尚义县| 新河县| 海安县| 盐边县| 平塘县| 三原县|