我有這個df,其中有日期&時間,日期和時間的列。當然還有CH4的觀測值和計算出的比率(我有更多的,但這與這個問題無關)。如何在R中指定觀察時間塊的開始時間
'data.frame': 1420847 obs. of 17 variables
$ Start : Factor w/ 1469 levels "2013-08-31 23:56:09.000",..: 2 2 2 2 2 2 2 2 2 2 ...
$ CO2 : int 1510 1950 1190 1170 780 870 730 740 680 700 ...
$ CH4 : int 66 77 62 58 34 51 36 43 32 40 ...
$ Ratio : num 0.0437 0.0395 0.0521 0.0496 0.0436 ...
$ Start_time: POSIXlt, format: "2013-11-20 00:10:05" "2013-11-20 00:10:05" "2013-11-20 00:10:05" "2013-11-20 00:10:05" ...
$ Start_date: Date, format: "2013-09-01" "2013-09-01" "2013-09-01" "2013-09-01" ...
現在我希望每天分成六塊4小時,併爲每個塊分配數字1-6。但是,問題是我只有開始測量的日期和時間(Start_date
和Start_time
或合計Start
),所以我認爲有必要將每個新的Start_time
分配到block
。觀察的長度變化很大,因此沒有選擇給它分配一個數字的選項。這是我想要完成的:
Start Start_time Start_date CO2 CH4 Ratio block
2013-09-01 00:10:05.000 00:10:05 2013-09-01 1510 66 0.04370861 1
2013-09-01 00:10:05.000 00:10:05 2013-09-01 1950 77 0.03948718 1
2013-09-01 05:16:55.000 05:16:55 2013-09-01 1190 62 0.05210084 2
2013-09-01 05:16:55.000 05:16:55 2013-09-01 1170 58 0.04957265 2
2013-09-01 05:16:55.000 05:16:55 2013-09-01 780 34 0.04358974 2
2013-09-01 12:44:33.000 12:44:33 2013-09-01 870 51 0.05862069 4
2013-09-01 12:44:33.000 12:44:33 2013-09-01 730 36 0.04931507 4
2013-09-01 22:14:23.000 22:14:23 2013-09-01 740 43 0.05810811 6
2013-09-01 22:14:23.000 22:14:23 2013-09-01 680 32 0.04705882 6
2013-09-02 08:37:05.000 08:37:05 2013-09-02 700 40 0.05714286 3
2013-09-02 08:37:05.000 08:37:05 2013-09-02 610 35 0.05737705 3
2013-09-02 17:22:33.000 17:22:33 2013-09-02 630 25 0.03968254 5
2013-09-02 17:22:33.000 17:22:33 2013-09-02 670 40 0.05970149 5
2013-09-02 23:59:44.000 23:59:44 2013-09-02 640 37 0.05781250 6
2013-09-02 23:59:44.000 23:59:44 2013-09-02 730 35 0.04794521 6
我已經搜索了這個網站,也嘗試過Google,但到目前爲止,我沒有找到答案。我已經嘗試了下面的代碼,我在這個網站上找到了答案,但沒有運氣。
qaa <- split(df, cut(strptime(paste(df$Start_date, df$Start_time), format = "%Y-%m-%d %H:%M"),"4 hours"))
此前,我試圖在幾分鐘內拆分觀察次數,所以我試圖調整該代碼。說實話,我不知道我在做什麼(正如你可以說的那樣)。
lst<- split(df, df$Start_date)
nobs <- "4 hours"
List <- unlist(lapply(lst, function(x) {
x$grp <- rep(1:(nrow(x)/nobs+1), each = nobs)[1:nrow(x)]
split(x, x$grp)}), recursive = FALSE)
b <- as.matrix(do.call("rbind", List))
只是爲了讓你知道,再次,我就 - [R所以我花很多時間來把事情了NOOB。我對語言知之甚少,但我正在盡我所能使之發揮作用。我非常喜歡與它合作!如果在這個網站上已經有另一個類似的問題,請告訴我,這樣我就可以刪除這個..但是我還沒有找到它。
感謝您花時間閱讀我的問題並考慮回答!
YESSS!那樣做了!我很抱歉我遲到的迴應。起初,我看不到你給我的頁面如何適用於我的DF。但是我明白了。非常感謝你! – Jalalala