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

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

R語言學(xué)習(xí)記錄:lubridate處理時(shí)序數(shù)據(jù)計(jì)算某一區(qū)間的均值和sum

2022-05-11 01:48 作者:孤獨(dú)的王大老實(shí)  | 我要投稿

前一段時(shí)間幫師妹處理了一個(gè)數(shù)據(jù),也借這個(gè)機(jī)會進(jìn)一步學(xué)習(xí)了一下lubridate包。

數(shù)據(jù)描述:

數(shù)據(jù)長這樣


需求:

求ABC三個(gè)變量每天7點(diǎn)到11點(diǎn)之間的均值,以及D變量每天的sum

處理思路和過程:

1.首先先把xlsx文件導(dǎo)入進(jìn)R,關(guān)于如何用R處理excel文件可以參考往期記錄

能發(fā)現(xiàn)問題嗎?

1.1出現(xiàn)了2個(gè)問題

(1)提示有warnings

用warnings()檢查一下發(fā)現(xiàn)給的提示是這樣的

我直譯一下:“強(qiáng)迫把文本變成了數(shù)值在巴拉巴拉巴拉‘NaN’”

于是我猜測原本的數(shù)據(jù)有Na值,返回原表去檢查,果然如此

在把這些含有NaN的行刪掉后,另存為‘test1.xlsx’,然后再導(dǎo)進(jìn)R,就沒有warnings了,證明我的直譯是準(zhǔn)確的(學(xué)習(xí)英語很重要!

雖然手動在原來的excel里可以手動刪除含有NaN的行,但是并不推薦這樣做,因?yàn)閿?shù)據(jù)可能有好幾千好幾萬行,不可能一個(gè)一個(gè)去檢索NA然后刪掉,另外warnings只是代表警告,并不是說明這行代碼沒有運(yùn)行成功,所以還是在后續(xù)代碼中處理NaN較為快捷。

(2)變量‘time’列發(fā)生了改變

原來的time列是‘1:30:00’格式(時(shí)分秒hms),代表一點(diǎn)半,但是導(dǎo)入進(jìn)R后變成了年月日(ymd)的格式。

1.2關(guān)于第二個(gè)問題的解決過程

在Stack Overflow上找到了兩個(gè)類似的問題

Q1:

這個(gè)問題有三個(gè)答案:

第一個(gè)答案是利用format和hms函數(shù)進(jìn)行轉(zhuǎn)換

第二個(gè)答案是利用‘openxlsx’包讀取

但我在用這個(gè)包進(jìn)行讀取的時(shí)候失敗了,給的結(jié)果是這樣式的

當(dāng)時(shí)我也搜索了相關(guān)問題,但是具體什么原因我忘記了,反正就是還得再設(shè)置一下,我嫌麻煩就沒有再繼續(xù)探究,有了解這個(gè)問題的大手子還請多指點(diǎn)!

第三個(gè)答案是利用‘xlsx’包讀取


但是這個(gè)包我至今都library不出來,一加載就重啟(焯!)。(好像是和Java有關(guān))

Q2

第二個(gè)問題,有很詳盡的解釋,大概意思是excel和R有不同的計(jì)算日期的標(biāo)準(zhǔn)。有興趣的朋友可以前往原網(wǎng)站仔細(xì)閱讀。

2.處理導(dǎo)入的數(shù)據(jù)框

導(dǎo)入xlsx后,就要開始處理了。此處需要注意的是,我并沒有理會在第一步中出現(xiàn)的兩個(gè)問題,沒有理會問題1的原因已經(jīng)說明,不理會問題二的原因是:我發(fā)現(xiàn)如果不去管它在后面的拆分日期中也是不影響的。

2.1根據(jù)需求,把日期拆分為年、月、日、時(shí)、分

在這里還遇到了一個(gè)小小的問題,就是要求均值的三個(gè)變量,是7點(diǎn)00到11點(diǎn)00的數(shù)據(jù),如果用hour>=7&hour<=11來進(jìn)行篩選的話,會發(fā)現(xiàn)11點(diǎn)30的數(shù)據(jù)也包括進(jìn)去了。最后的解決辦法是,一個(gè)一個(gè)的指定時(shí)間點(diǎn)。新增一列‘newhour’,把數(shù)據(jù)分為兩類,一類是7點(diǎn)00到11點(diǎn)00的,標(biāo)記為y。另一類是不在這個(gè)時(shí)間區(qū)間的,標(biāo)記為n。

最終結(jié)果


2.2分別計(jì)算ABC變量的均值和D的sum


變量A每一天的7點(diǎn)到11點(diǎn)的均值

group_by函數(shù)就是用來分組,比如我這里把月、日、newhour作為分類標(biāo)準(zhǔn)進(jìn)行了分組,那么分組的結(jié)果就是5月1日y的數(shù)據(jù)為一組,5月1日n的數(shù)據(jù)為1組,5月2日y的數(shù)據(jù)為1組,5月2日n的數(shù)據(jù)為1組,以此類推。

然后再用管道傳遞給summarize函數(shù)計(jì)算均值。

2.3合并數(shù)據(jù),導(dǎo)出為csv

用全連接函數(shù)把數(shù)據(jù)框拼接,其實(shí)也可以用cbind函數(shù)。

需要注意的是:full_join函數(shù)只能兩個(gè)兩個(gè)的連,不能一股腦的把所有的數(shù)據(jù)框都扔進(jìn)去。

抒情time:

當(dāng)時(shí)隨口吹了一句牛逼說“用R處理應(yīng)該不難吧”,沒想到師妹放棄了“不食嗟來之食”的傲骨,打蛇隨棍上,我雖然心里害怕吹牛逼吹過頭,萬一弄不好咋整,但是當(dāng)時(shí)也只能硬著頭皮把這逼裝完,結(jié)果最后真的讓我2個(gè)小時(shí)給弄好了,不免有點(diǎn)沾沾自喜,甚至還發(fā)了個(gè)動態(tài)作為紀(jì)念。

現(xiàn)在想來給自己的教訓(xùn)有三點(diǎn):

  1. 不吹牛逼能死嗎!

  2. 不吹牛逼能死嗎!!

  3. 不吹牛逼能死嗎?。?!


R語言學(xué)習(xí)記錄:lubridate處理時(shí)序數(shù)據(jù)計(jì)算某一區(qū)間的均值和sum的評論 (共 條)

分享到微博請遵守國家法律
彩票| 全州县| 抚远县| 西乡县| 邻水| 台北县| 漳州市| 临海市| 高青县| 汶上县| 忻城县| 隆子县| 吉木萨尔县| 荆州市| 灌阳县| 四川省| 江达县| 阿瓦提县| 巴彦县| 石河子市| 昌平区| 铜山县| 永靖县| 左贡县| 乌兰浩特市| 集安市| 门头沟区| 绍兴县| 尼木县| 黎平县| 天峨县| 都匀市| 绥江县| 怀集县| 明溪县| 龙里县| 常宁市| 翁牛特旗| 和硕县| 德庆县| 安远县|