PTT
Submit
Submit
選擇語言
正體中文
简体中文
PTT
R_Language
[問題] 如何將前n小時資料另存一個欄位
作者:
studioA
(understand?)
2022-07-21 11:17:08
[問題類型]:
程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來)
[軟體熟悉度]:
請把以下不需要的部份刪除
新手(沒寫過程式,R 是我的第一次)
[問題敘述]:
我有一組data.table數據,格式如下, 我想新增1個欄位RH03,擺放RH值前3小時的數據,
我用dplyr 的 mutate 但出現錯誤訊息,請問要如何修正?
Data %>% mutate("RH03" =RH[-3])
Date hour RH
2022-07-01 1 71
2022-07-01 2 72
2022-07-01 3 77
2022-07-01 4 78
2022-07-01 5 83
2022-07-01 6 NA
2022-07-01 7 78
2022-07-01 8 70
2022-07-01 9 65
2022-07-01 10 60
2022-07-01 11 58
2022-07-01 12 55
2022-07-01 13 57
2022-07-01 14 58
2022-07-01 15 61
2022-07-01 16 79
2022-07-01 17 73
2022-07-01 18 66
2022-07-01 19 65
2022-07-01 20 72
2022-07-01 21 74
2022-07-01 22 74
2022-07-01 23 78
2022-07-01 24 81
[程式範例]:
[環境敘述]:
請提供 sessionInfo() 的輸出結果,
裡面含有所有你使用的作業系統、R 的版本和套件版本資訊,
讓版友更容易找出錯誤
[關鍵字]:
選擇性,也許未來有用
作者:
lycantrope
(阿寬)
2022-07-21 11:42:00
可以用lag(RH, n=3L)來取得位移後的資料,反之用lead
作者: wayturn (岳)
2022-07-21 19:56:00
若不能保證每小時都有RH、資料集有排序,建議是前兩欄轉成時間格式>>判斷3小時是否資料>>新欄位賦予
作者: Gjerry
2022-07-22 01:10:00
Data[, tmp := hour - 3]merge(Data[, -"tmp"], Data[, -"hour"], by.x = "hour",by.y = "tmp", all = T)然後再清理一下表格移除不需要的NA就好了
作者:
fox1375
(阿吠)
2022-07-22 02:30:00
用ifelse就可以了,不過如果不是前3小時要擺多少,0嗎?Data %>% mutate(RH03 = ifelse(hour <= 3, RH, 0))NA就Data %>% mutate(RH03 = ifelse(hour <= 3, RH, NA))
作者:
hohiyan
(海洋)
2022-07-22 03:00:00
data.table的話 df[, RH03 := shift(RH, 3L, 0, "lag")]如果前3個小時不填0而是NA,就把0改成NA即可
https://pastebin.com/3EGhJ0dL
作者:
studioA
(understand?)
2022-07-22 11:56:00
感謝解答疑惑
繼續閱讀
[問題] 判斷空間中的一點是否在三角錐裡
chu1216
[問題] dplyr流程下如何匯出data.frame
studioA
[問題] Rshiny + openxlsx + download button問
xiangying
[問題] tryCatch除錯測試
studioA
[問題] 矩陣的維度變大
wgene
[問題] reshape2 寬表轉長表問題
studioA
[問題] 矩陣裡若前兩行相同, 第三行相加
wgene
[問題] 兩個矩陣相乘
wgene
[問題] 針對矩陣的每一行做排序
wgene
[問題] 徵求有發布R package 經驗的家教
xiaofen
Links
booklink
Contact Us: admin [ a t ] ucptt.com