作者kakaman (日子過的真快阿)
看板R_Language
標題[問題] 有關排序之問題
時間Tue Apr 26 15:15:56 2022
大家好,
有些關於R在處理資料上的問題想要請教,
若我要對資料進行多欄位的排序…有類別、日期等,大概長這樣:
1.有關多重排序並涉及類別
表1
姓名 檢查日期 試驗結果
張三 4/1 異常
李四 4/1 正常
王五 4/5 異常
王五 4/10 正常
李四 4/8 異常
張三 4/20 異常
張三 4/26 檢驗中
想讓他變成以下排序方式
表2
姓名 檢查日期 試驗結果
王五 4/5 異常
王五 4/10 正常
李四 4/8 異常
李四 4/1 正常
張三 4/1 異常
張三 4/20 異常
張三 4/26 檢驗中
這樣的寫法…好像行不通
表1$試驗結果 <- factor(表1$試驗結果, levels = c(“異常”, “正常”, “檢驗中”
)
表2 <- Order(表1$姓名, 表1$試驗結果, 表1$檢查日期)
2.文字轉日期格式真的很麻煩…
嘗試用過Strptime()、as.posixct()都失敗…出現整欄的N/A…
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.136.221.44 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/R_Language/M.1650957358.A.759.html
1F:推 lycantrope: Strptime 你有提供format嗎?例如 "%m/%d" 04/26 16:09
2F:推 Gjerry: 不介意加上年的話就先把 4/1 弄成 2022/4/1 然後用 lubr 04/26 16:34
3F:→ Gjerry: idate::ymd 就可以轉換好了 04/26 16:34
4F:→ Gjerry: 表1 <- 表1[order(表1$姓名, 表1$測驗結果, 表1$檢查日期 04/26 16:38
5F:→ Gjerry: ), ] 應該就可以了 04/26 16:38
6F:推 fox1375: library(dplyr) 表2 <- 表1 %>% arrange(名,果,日) 04/26 17:02
7F:→ kakaman: 如果需要自行指定文字的順序,要再寫何種code? 04/26 17:57
8F:→ xiangying: 將變數改成factor,用levels自訂順序 04/26 18:13
9F:→ xiangying: 改時間可用lubridate::as_datetime 04/26 18:14
10F:推 fox1375: 字串轉日期推薦lubridate套件 04/27 12:16
11F:→ fox1375: parse_date_time( ,order = c("md"),tz = "Asia/Taipei") 04/27 12:17
12F:→ khaos: 自行指定文字排序 如果不想寫死在程式裡 我的做法是 04/29 10:01
13F:→ khaos: 另外建一個excel 第一欄序號 第二欄文字 然後 04/29 10:02
14F:→ khaos: 讀進來去跟data frame做合併 就有序號可以排 04/29 10:02
15F:→ khaos: 以後要改排序就excel改改 當成是一般參數檔 04/29 10:02