作者jezi1878 (小天使)
看板R_Language
標題[問題] 如何選取向量中出現不同日期的第一個位
時間Wed Jul 20 08:36:33 2022
各位 我有一個日期向量,格式如下,想找出向量中出現不同日期的第一個位置
“20210801” “20210801” “20210806”
“20210806” “20210806” “20210806”
“20210921” “20210921” “20210921”
“20210928” “20210929”
我想要 這些日期第一個出現的位置(如下)
日期 位置
“20210801”, 1
“20210806”, 3
“20210921”, 7
“20210928”, 10
“20210929”, 11
請問要如何一次性找出來
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 101.12.26.45 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1658277395.A.E31.html
※ 編輯: jezi1878 (101.12.26.45 臺灣), 07/20/2022 08:37:30
※ 編輯: jezi1878 (101.12.26.45 臺灣), 07/20/2022 08:38:48
※ 編輯: jezi1878 (101.12.26.45 臺灣), 07/20/2022 08:40:03
→ llssdog: shift一格相減,取大于0的位置如何? 07/20 10:52
推 hohiyan: 笨方法:轉成data.frame後,用unique(),rowname()為位置 07/20 11:02
推 lycantrope: 如果資料沒有sort shift一格相減不一定會正確 07/20 11:59
→ lycantrope: 用dplyr就是aggregate+first或group_by+first 07/20 12:02
推 Gjerry: which(!duplicated(x)) 07/20 14:08
→ Gjerry: 這方法不論是否已經排序,都會回傳該值第一次出現的位置 07/20 14:13
→ jkchang: match(unique(x), x)) 07/20 16:54
推 hohiyan: 綜合以上,在保持vector而不轉成data.frame的狀況下: 07/20 21:30
→ hohiyan: cbind(unique(x), which(!duplicated(x)) 同時有值跟位置 07/20 21:31